2013-03-04 2 views
0

Я пытаюсь создать индекс, содержащий 37 миллионов записей.Stagger Sphinx Indexing

Я использую скрипт для экспорта данных из MySQL и выводя его как XML, который затем импортируется с помощью xmlpipe2.

Проблема, с которой я столкнулась, - это создаваемый XML-файл, который значительно расширяется, а сервер, на котором я работаю, не имеет памяти для хранения XML.

Если я ограничиваю количество импортируемых строк, например. LIMIT 0, 1000000, когда я делаю LIMIT 1000000, 1000000, индекс не «сливается» как таковой, а перезаписывает.

Могу ли я как-то пошатнуть это, чтобы в итоге я получил индекс всех данных?

Благодаря

ответ

0

Вместо того, чтобы выводить на фактический XML-файл, просто передайте результат прямо в sphinx. Таким образом, фактический файл никогда не должен существовать (в памяти или в файловой системе).

т. Е. Скрипт, который вы вызываете в 'xmlpipe_command', просто печатает XML напрямую в STDOUT. sphinx переваривает и читает его по мере продвижения.

Я читал XML-источники данных во много раз больше, чем серверная память.

0

Вы можете иметь более одного источника на индекс, как несколько XML-файлов или нескольких источников данных MySQL. Индекс принимает их в том порядке, который вы им даете, просто удостоверьтесь, что идентификатор документа уникален по всем источникам.