Стратегия индексации Lucene для документов, которые часто меняются - PullRequest
1 голос
/ 16 мая 2011

Я интегрирую функцию поиска в настольное приложение и использую для этого Vanilla Lucene. Приложение обрабатывает (потенциально тысячи) объектов POJO, каждый из которых имеет свой собственный набор свойств ключ / значение. При отображении моделей между моим приложением и Lucene изначально я думал о назначении каждому POJO документа и добавлении свойств в качестве полей. Этот подход прекрасно работает в том, что касается индексации и поиска, но главный недостаток заключается в том, что всякий раз, когда POJO меняет свои свойства, мне приходится повторно индексировать ВСЕ свойства, даже те, которые не изменились, чтобы обновить индекс. Я думал о том, чтобы изменить свой подход и вместо этого создать документ для каждого свойства и назначить один и тот же идентификатор всем документам из одного и того же POJO. Таким образом, когда изменяется свойство POJO, я обновляю только соответствующий ему документ без переиндексации всех остальных неизмененных свойств. Я думаю, что график db Neo4J следует аналогичному подходу, когда дело доходит до индексации, но я не совсем уверен. Может ли кто-нибудь прокомментировать возможное влияние на производительность, запросы и т. Д.

Ответы [ 2 ]

0 голосов
/ 18 мая 2011

Если вы будете искать только одно поле в каждом поисковом запросе, разделение одного POJO на несколько документов ускорит переиндексацию.Но это вызовет другую проблему, если при поиске по нескольким полям POJO может появляться много раз.На самом деле, я согласен с EJP, индекс строительства очень быстрый в небольшом наборе данных.

0 голосов
/ 16 мая 2011

Это в основном зависит от того, что вы хотите вернуть в качестве документа в результате поиска.

Но индексирование довольно дешево. Действительно ли измененный POJO имеет так много свойств, что переиндексация их всех является серьезной проблемой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...