Solr
构建索引的标准方式是Inverted index
,这使搜索速度非常快&有效率。我很清楚Inverted
& Backward
索引,但为什么倒数索引在Faceting
或Sorting
数据时效果不佳?我用Google搜索,但得不到令人满意的解释。
PS:我们使用DocValues字段类型来进行Faceting时需要使用的字段 或排序(DocValue字段现在是面向列的字段,在索引时构建了文档到值的映射)。
有人对此有明确的解释吗?感谢
答案 0 :(得分:1)
原因是计算实际包含构面的文档数量很昂贵。对于每个术语,您实际上都在搜索该术语并将其与您已经检索过的文档集相交,找出前一个和新一个集中包含的文档数量。倒排索引并没有提供任何(直接)有用的东西。
关于这个主题有a lot of literature可用,讨论对于堆栈溢出答案可以提供的内容来说过于宽泛。 " What is in a Lucene index?"来自去年Lucene Solr Revolution的演讲也提供了一些见解。