Некоторые строки теряются при создании индекса Whoosh в Python - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь загрузить данные в поисковик Whoosh.Есть около 7 000 000 строк для вставки.Сначала я получаю все строки с psycopg2 из базы данных PostgreSQL, затем вставляю их с writer.add_document(some_data_here) в индекс Whoosh.Мой writer объект выглядит следующим образом:

writer = index.writer(limitmb=1024,procs=5,multisegment=True)

Проблема в том, что выполнение index.searcher().documents() (которое должно возвращать все документы в индексе) возвращает значительно меньшее количество строк - около 5 000 000.Я могу подтвердить это другим запросом, просто ища Term, который подходит для каждой записи - я получаю идентичный результат (около 5 млн.).

Я подумал, что это может быть некоторый параллелизм Python или проблема с памятью, поэтому япытался загрузить его по-крупному - я разделил данные на равные блоки по 500 000 записей, но без удачи все равно получил меньшую сумму.Я также попытался поиграть с параметрами writer, но снова безуспешно.

Я обнаружил проблему, пытаясь найти запись, которая, как я точно знал, должна существовать - это не так.Я использую 16 ГБ ОЗУ и 6-процессорный сервер, поэтому ресурсы не должны быть проблемой.

...