如何从自定义请求处理程序获取IndexReader?

时间:2011-10-11 00:33:02

标签: solr requesthandler

这是我earlier question的扩展。

我将创建自定义请求处理程序,以便为现有索引提供术语关联挖掘。为此,我需要访问在默认索引目录上打开的Solr IndexReader

我能想到的唯一方法是通过调用IndexReaderFactorySolrQueryRequestgetCore()来获取getIndexReaderFactory()。这个工厂有方法newReader(),这似乎是我需要的。但是这种方法需要索引目录作为其第一个参数。

以下是我的问题:以正确的方式获取IndexReader吗?如果是这样,我如何获取Solr的索引目录?我可以访问Solr配置以从我的代码中找到它还是应该使用其他东西?

1 个答案:

答案 0 :(得分:2)

我在阅读LukeRequestHandler来源时找到了答案:

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

所以他们首先得到了搜索者,然后只有读者。