什么时候应该关闭 SolrSearcher?

When should one close a SolrSearcher?

我正在实施一个 Solr 组件(实施 org.apache.solr.handler.component.SearchComponent)。当覆盖 prepare() 方法时,我通过以下方式检索搜索器: responseBuilder.req.getSearcher() 其中 returns 一个 SolrIndexSearcher 实例。

我的问题:我是否应该在 prepare() 方法结束时关闭搜索器?

打开搜索器的不是我。所以我不应该关闭它。对吗?

不,您不应该关闭搜索器。

如果索引数据发生变化,搜索器必须关闭并重新打开。所以他们可能有相当长的寿命。 由于您的组件是只读的(我假设),这不是您的责任。更新组件会关心这个。

你可以看看org.apache.solr.handler.component.QueryComponent。它也不会关闭搜索器。