php xml большие связанные файлы как лучше обработать

Есть 3 связанных xml файла, тоесть id из первого есть в других. файлы размером от 100мб до 2-3 гб. Кому интересно это база адресов ГАР.

1й файл названия объектов 2й файл характеристики 3й иерархия - какой объект за каким идет. Родители объектов

вопрос как мне это лучше связать и обработать?

Единичный файл я обрабатываю php XMLReader - он не грузит файл в память. А идет по нему от начала до конца. постепенно. НО мне надо как то связать данные. из первого взять имя объета. из второго параметры. А из 3го взять кто родитель. И все это записать в solr. Солр на сколько я знаю не умеет обновлять данные запросом. Надо сначала снова получить документы. переписать в них поля и снова добавить.

каждый раз доставать и сохранять это в солр это как то медленно.

Я сначала сделал добавление всех данных в базу mysql в 3 таблицы. Потом делаю запрос на связывание этих данных и уже это добавляю в solr постепенно пачками по 1000 документов.

Вроде работает но все равно как то медленно. Там на хабре ребята хвастались что несколько часов всю базу обрабатывают. У меня только минут 20-50 уходит на обработку 1 региона. Их там 99.

Вообщем может есть какой то интересный способ как связывать данные в больших xml чтоб без промежуточной базы.


Ответы (0 шт):