索引和倒排索引如何在 solr 的构面中工作?
How index and inverted index works in facets in solr?
我了解倒排索引和索引的理论概念。 Solr 主要使用倒排索引(搜索标记而不是文档)来索引文档。
我还读到 Solr 对 facets 等功能使用索引。
据我了解,对于方面,
搜索一个term和创建facet需要Solr搜索一个字段中的所有term,并匹配所有检索到的包含该搜索term的文档,这将是有代价的,所以使用了索引。
据我了解,索引用于检索所有引用搜索词的文档,遍历它们并计算有关字段的唯一值计数。
这是对这个概念的正确理解还是另有所指?
这不仅仅是一种方式,solr 中的分面是如何工作的。
Solr 有一个启发式 select a best 但也有一个 the
facet.method parameter 到 select 由您自己决定。
主要是你的描述是对的,但是solr因为缓存了所以很快
UnInvertedField 而不是 select 从倒排索引中获取每个请求的值。
使用 DocValues 还可以有效地存储未反转的字段。
这个答案也可能对您有所帮助:
- How does Lucene/Solr achieve high performance in multi-field / faceted search?
- Solr faceted search performance recommendations
- http://de.slideshare.net/lucenerevolution/seeley-solr-facetseurocon2011
我了解倒排索引和索引的理论概念。 Solr 主要使用倒排索引(搜索标记而不是文档)来索引文档。
我还读到 Solr 对 facets 等功能使用索引。
据我了解,对于方面,
搜索一个term和创建facet需要Solr搜索一个字段中的所有term,并匹配所有检索到的包含该搜索term的文档,这将是有代价的,所以使用了索引。
据我了解,索引用于检索所有引用搜索词的文档,遍历它们并计算有关字段的唯一值计数。
这是对这个概念的正确理解还是另有所指?
这不仅仅是一种方式,solr 中的分面是如何工作的。 Solr 有一个启发式 select a best 但也有一个 the facet.method parameter 到 select 由您自己决定。
主要是你的描述是对的,但是solr因为缓存了所以很快 UnInvertedField 而不是 select 从倒排索引中获取每个请求的值。
使用 DocValues 还可以有效地存储未反转的字段。
这个答案也可能对您有所帮助:
- How does Lucene/Solr achieve high performance in multi-field / faceted search?
- Solr faceted search performance recommendations
- http://de.slideshare.net/lucenerevolution/seeley-solr-facetseurocon2011