Жизненный цикл для IndexSearcher в Solr - PullRequest
0 голосов
/ 26 октября 2018

Я бы хотел лучше понять жизненный цикл для IndexSearcher в Solr, я понимаю, что IndexSearcher для Lucene рекомендует: «По соображениям производительности, если ваш индекс неизменен, вы должны поделиться одним IndexSearcher экземпляр для нескольких поисков вместо создания нового для каждого поиска. »( Lucene 4.6.1 ).

Но когда дело доходит до мира Solr, который в Java Webapp с диспетчером сервлетов. Мы также продолжаем использовать один и тот же экземпляр IndexSearcher, пока не изменяется индекс?

Я вижу, что у "Хоссмана" был этот разговор для жизненного цикла поискового запроса solr , но он ничего не упоминает о том, как мы обрабатываем / очищаем indexsearcher.

1 Ответ

0 голосов
/ 26 октября 2018

Причина в том, что вы не взаимодействуете непосредственно с IndexSearcher Lucene. Это ответственность Solr, и держаться подальше от вас как пользователя Solr.

Единственное место, где вы можете взаимодействовать с поисковиком при использовании Solr, - через параметр автоматической фиксации .

При выдаче коммита или оптимизации текущий читатель индекса будет закрыт, а новый будет открыт. При выполнении этих команд у вас есть возможность сообщить Solr, что вы хотите подождать, пока новый найденный файл не будет открыт, прежде чем он вернется, что позволит вам быть уверенным, что ваши изменения стали видимыми (через waitSearcher).

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

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