При каких условиях безопасно выполнять операции ввода / вывода (перемещение / замена) по индексу люцен (компас) - PullRequest
1 голос
/ 21 октября 2011

Иногда необходимо пересоздать люцен-индекс с нуля.Поскольку я не хочу, чтобы индекс был неполным в течение нескольких часов во время сборки, я использую отдельный экземпляр компаса, чтобы построить новый индекс и впоследствии заменить его в файловой системе.Перед этим все экземпляры компаса останавливаются с помощью SearchEngineIndexManager#stop(), после чего они перезапускаются с помощью SearchEngineIndexManager#start()

Однако, время от времени индекс кажется поврежденным во время этой операции.

Не безопасно ли заменить индекс в файловой системе, когда SearchEngineIndexManger остановлен?Есть ли другие необходимые меры предосторожности, чтобы рассмотреть, нужно ли мне работать с индексом lucene в файловой системе?

Ответы [ 2 ]

0 голосов
/ 21 марта 2012

Мне удалось решить проблему, добавив 5 секунд sleep после остановки и перед повторным запуском IndexManager.Может быть, уродливое решение, но оно работает для меня.

Конечно, я также добавил вызов SearchEngineIndexManager # clearCache () после перезапуска.

0 голосов
/ 21 октября 2011

Как перевести ваш сервер в режим только для чтения, а затем запустить переиндексирование для второго экземпляра lucene (который имеет свой собственный индекс). По завершении индексации отключите все серверы и присвойте новый индекс своей основной версии сервера lucene.

...