什么是Solr“搜索者”?

时间:2013-09-14 16:30:54

标签: solr lucene

我在阅读Lucene Solr的维基时遇到了术语搜索者。 我在Solr wiki中环顾四周,但找不到定义。那么什么是solr“搜索者”呢?它是用户查询还是索引后端的模块?

2 个答案:

答案 0 :(得分:12)

与Solr中的索引相关:Searcher(实际上是Solr4的IndexSearcher)是索引和搜索后端组件内部的Solr / Lucene,就像你所说的那样。我们的想法是,当您在Solr中索引文档时,它们在提交操作完成后变得可见。这是Searcher重新打开索引并查看自上次提交操作以来所做的更改的时间。

因为重新打开Searcher是一项昂贵的操作,所以solr4中有一个新功能,称为软提交。例如,它允许您像每秒一样频繁地提交(可配置),并使这些提交的文档立即显示给您的客户端app / ui。它很快,因为提交发生在RAM中。您仍然需要执行普通的硬提交以将更改刷新到磁盘。这是必需的,这样更改不会丢失,并且您不希望用完RAM。

另外,您可能希望使用带有updateLog功能的软提交,该功能存储添加的文档,即使Solr实例由于OutOfMemoryError或物理拔出索引机而崩溃,也可以重放。

HTH。

答案 1 :(得分:2)

Seacher只是一个Lucene类,可以搜索Lucene索引。

Searcher是一个抽象基类,具有各种重载搜索方法。 IndexSearcher是一个常用的子类,它允许搜索存储在给定目录中的索引。 Search方法返回按计算得分排序的有序文档集合。 Lucene计算与给定查询匹配的每个文档的分数。 IndexSearcher是线程安全的;多个线程可以同时使用单个实例。