Sorting Solr中的DocValues是什么。

Sorting Solr中的DocValues是什么。,sorting,solr,inverted-index,Sorting,Solr,Inverted Index,我是新来Solr的。我读到Solr使用的是反向索引,这对于快速搜索结果是有效的。但若查询包括排序、刻面,人们建议使用docvalues。所以我的问题是什么是docvalues,为什么我们需要在上述情况下使用,以及在上述情况下反转索引是如何无效的如果可能,请用示例详细解释。简短的回答是,DocValues是一种优化,有助于提高人们与搜索相关的Solr的某些其他功能的内存利用率和性能 从: DocValues是一种在内部记录字段值的方法,它比 在某些方面(如排序和镶嵌面)比 传统的索引 为什么是价值

我是新来Solr的。我读到Solr使用的是反向索引,这对于快速搜索结果是有效的。但若查询包括排序、刻面,人们建议使用docvalues。所以我的问题是什么是docvalues,为什么我们需要在上述情况下使用,以及在上述情况下反转索引是如何无效的如果可能,请用示例详细解释。

简短的回答是,DocValues是一种优化,有助于提高人们与搜索相关的Solr的某些其他功能的内存利用率和性能

从:

DocValues是一种在内部记录字段值的方法,它比 在某些方面(如排序和镶嵌面)比 传统的索引

为什么是价值观

Solr构建索引的标准方法是使用反向索引。 此样式生成在中的所有文档中找到的术语列表 索引,每个术语的旁边是一个文档列表,该列表表示该术语 出现在中(以及该术语在中出现的次数) 文件)。这使得搜索速度非常快-因为用户按术语搜索, 有一个准备好的术语到文档值列表可以使查询过程 更快

对于我们现在通常与搜索关联的其他功能,例如 排序、刻面和突出显示,这种方法不是很好 有效率的例如,刻面引擎必须查找每个术语 将出现在构成结果集的每个文档中,以及 拉动文档ID以构建方面列表。在索尔,这个 保存在内存中,加载速度可能较慢(取决于 文件、条款等的数量)

在Lucene 4.0中,引入了一种新方法。DocValue字段现在为空 在索引处构建文档到值映射的面向列的字段 时间这种方法有望减少一些内存 fieldCache的要求,并查找刻面、排序、, 而且分组要快得多


简而言之,DocValues是一种优化,有助于提高人们与搜索相关联的Solr的一些其他功能的内存利用率和性能

从:

DocValues是一种在内部记录字段值的方法,它比 在某些方面(如排序和镶嵌面)比 传统的索引

为什么是价值观

Solr构建索引的标准方法是使用反向索引。 此样式生成在中的所有文档中找到的术语列表 索引,每个术语的旁边是一个文档列表,该列表表示该术语 出现在中(以及该术语在中出现的次数) 文件)。这使得搜索速度非常快-因为用户按术语搜索, 有一个准备好的术语到文档值列表可以使查询过程 更快

对于我们现在通常与搜索关联的其他功能,例如 排序、刻面和突出显示,这种方法不是很好 有效率的例如,刻面引擎必须查找每个术语 将出现在构成结果集的每个文档中,以及 拉动文档ID以构建方面列表。在索尔,这个 保存在内存中,加载速度可能较慢(取决于 文件、条款等的数量)

在Lucene 4.0中,引入了一种新方法。DocValue字段现在为空 在索引处构建文档到值映射的面向列的字段 时间这种方法有望减少一些内存 fieldCache的要求,并查找刻面、排序、, 而且分组要快得多


为了完成Hector的回答,我认为倒排索引能够有效地匹配给定主搜索查询的文档

现在,当涉及到筛选/排序/执行面处理时,Solr作用于结果集,它已经在处理匹配文档的列表,并且任何子查询都将与主结果集相交或并集

在这一点上,我们可以从逻辑上考虑文档的某些情况:例如,如果您要按fieldX对任意docid列表进行排序,您实际上会对fieldX值进行重新排序,并获得相应的排序docid

因此,如果fieldCache是在为相关字段启用docValues的情况下构建的,那么准备好使用文档到值的映射将极大地提高fieldCache的使用率


我们也可能(可能有点不准确)提到热缓存与冷缓存

为了完成Hector的回答,我想说,倒排索引能够有效地匹配给定主搜索查询的文档

现在,当涉及到筛选/排序/执行面处理时,Solr作用于结果集,它已经在处理匹配文档的列表,并且任何子查询都将与主结果集相交或并集

在这一点上,我们可以从逻辑上考虑文档的某些情况:例如,如果您要按fieldX对任意docid列表进行排序,您实际上会对fieldX值进行重新排序,并获得相应的排序docid

因此,如果fieldCache是在为相关字段启用docValues的情况下构建的,那么准备好使用文档到值的映射将极大地提高fieldCache的使用率


我们也可能(可能有点不准确)提到热缓存与冷缓存

反向索引定义每个术语(标记)的文档列表。所以对于刻面来说,使用倒排索引来给出正确的计数是非常容易的?。所以docvalues如何提供更好的优化,索引定义了每个术语(标记)的文档列表。所以对于刻面来说,使用倒排索引来给出正确的计数是非常容易的?。那么docvalues如何在这里提供更好的优化呢