Field.Set OmitNorms有什么用(true);在lucene

时间:2009-08-27 08:39:18

标签: .net lucene

我被建议使用Field.Set OmitNorms(true);在为lucenesearch创建文档时,根据命中数对结果进行排序,但我不知道它的作用是什么,是否安全。

根据点击次数对结果进行排序意味着找到搜索文本的文档的最大次数应该位于顶部,其次是b匹配搜索文本的次数较少的文档。

我知道这很愚蠢但我想在实施之前知道请帮助。

2 个答案:

答案 0 :(得分:10)

查看this article for a good paragraph在优化方面省略规范的说明。 基本上它有点类似于字段内部的术语的迷你lucene索引,所以它实际上只对其中有大量文本的字段有用。

答案 1 :(得分:5)

默认情况下,字段的索引为norm,它是文档提升,字段提升和字段长度标准化因子的乘积(请参阅Similarity scoring)。这会为每个字段的存储和内存消耗添加一个字节,使用omitNorms可以忽略所选字段或字段类型。

在索引编制期间指定了提升,同时计算lengthNorm,以便如果两个文档与查询字词f次匹配,则较长的文档将获得较低的分数。

因此,如果您希望根据匹配的术语的确切数量对文档进行评分,而不是与文档长度成比例的术语数量,请使用omitNorms(并免费获得内存消耗优势)。