9

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

4

2 回答 2

15

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

因为重新打开 Searcher 是一项昂贵的操作,所以 solr4 中有一个新功能,称为软提交。例如,它可以让您每秒提交一次(可配置),并使这些提交的文档立即对您的客户端应用程序 / ui 可见。它很快,因为提交发生在 RAM 中。您仍然需要执行普通的硬提交才能将更改刷新到磁盘。这是必需的,以便更改不会丢失,并且您不想用完 RAM。

附带说明一下,您可能希望使用带有 updateLog 功能的软提交,该功能存储添加的文档,并且即使 Solr 实例由于 OutOfMemoryError 或物理拔出索引机器而崩溃,也可以重播。

HTH。

于 2013-09-16T12:34:43.707 回答
2

Seacher 只是一个 Lucene 类,它可以在 Lucene 索引中进行搜索。

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

于 2013-09-16T02:49:02.403 回答