Solr中IndexSearcher的生命周期

时间:2018-10-26 13:43:13

标签: search solr lucene

我想对Solr中IndexSearcher的生命周期有更多的了解,我知道Lucene的IndexSearcher建议:“出于性能方面的考虑,如果您的索引不变,您应该共享一个跨多个搜索的一个IndexSearcher实例,而不是为每个搜索创建一个新的实例。”(Lucene 4.6.1)。

但是,当事情来到Solr世界时,它就在带有servlet调度程序的Java Webapp中。只要索引不变,我们是否还会继续使用相同的IndexSearcher实例?

我看到“ Hossman”正在为lifecycle of the solr search request做这个演讲,但是他没有提及我们如何处理/清理indexsearcher的任何事情。

1 个答案:

答案 0 :(得分:0)

这样做的原因是您不直接与Lucene的IndexSearcher交互。这是Solr的责任,而作为Solr的用户请远离您。

使用Solr时,您唯一与搜索者建立联系的地方就是通过the auto commit setting

发出提交或优化时,将关闭当前的索引读取器,并打开一个新的索引读取器。发出这些命令时,可以选择告诉Solr您要等到新搜索打开后再返回,以确保您所做的更改已显示(通过name)。

除此之外,搜索者的生命周期(可以概括为“保持生命,直到对索引进行更改,然后重新打开新索引”)。

>