Как получить IndexReader из пользовательского обработчика запросов? - PullRequest
0 голосов
/ 11 октября 2011

Это расширение моего предыдущего вопроса .

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

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

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

1 Ответ

2 голосов
/ 11 октября 2011

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

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

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

...