Как получить IndexReader из пользовательского обработчика запросов?

Это расширение моего более раннего вопроса< /а>.

Я собираюсь создать специальный обработчик запросов, чтобы обеспечить анализ ассоциации терминов по существующему индексу. Для этого мне нужен доступ к Solr IndexReader, открытому в индексной директории по умолчанию.

Единственный способ сделать это, который я могу придумать, - это получить IndexReaderFactory путем вызова SolrQueryRequest.getCore(). getIndexReaderFactory(). У этой фабрики есть метод newReader(), который, кажется, мне нужен. Но этот метод требует индексного каталога в качестве первого аргумента.

Вот мой вопрос: это правильный способ получить IndexReader? Если да, то как я могу получить индексный каталог Solr? Могу ли я получить доступ к конфигурации Solr, чтобы найти ее в своем коде, или мне следует использовать что-то еще?


person ffriend    schedule 11.10.2011    source источник


Ответы (1)


Я сам нашел ответ, читая LukeRequestHandler источник:

SolrIndexSearcher searcher = req.getSearcher();
IndexReader reader = searcher.getReader();

Так они сначала получают поисковик, а уж потом читатель.

person ffriend    schedule 11.10.2011