Lucene индексация и поиск одновременно - PullRequest
5 голосов
/ 13 февраля 2012

Я хочу искать с Lucene по индексу. Индекс часто меняется. Поэтому мне нужно что-то сделать для поиска и индексации одновременно. Это веб-приложение на Tomcat. И я хочу использовать RAMDeirectory для увеличения скорости поиска. Я не знаю, как это сделать!

Ответы [ 3 ]

5 голосов
/ 06 октября 2013

NRTManager в пакете misc Lucene предоставляет возможность поиска и индексации одновременно.

TrackingIndexWriter writer; // your writer
SearcherFactory factory = new SearcherFactory();
NRTManager mgr = new NRTManager(writer, factory);

Проверьте методы NRTManager для получения дополнительной информации.

3 голосов
/ 13 февраля 2012

Вы можете искать и индексировать одновременно, используя тот же индекс. Посмотрите на Люсена в режиме реального времени поиска .

Пример кода из вики,

IndexWriter writer; // create an IndexWriter here
Document doc = null; // create a document here
writer.addDocument(doc); // update a document
IndexReader reader = writer.getReader(); // get a reader with the new doc
Document addedDoc = reader.document(0);
0 голосов
/ 13 февраля 2012

Вы должны сделать это либо сделать

  1. Пакетные / ночные операции перестроения индексов.
  2. Сделай это асинхронно ...

Зависит от требования, какая задержка вам нужна.

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