文档得分影响结果的排序顺序,Lucene

时间:2010-02-24 18:11:02

标签: sorting lucene lucene.net

即使在通过分类字段后,文档的分数也会影响搜索结果的排序顺序。有没有办法让lucene在传递特定排序字段时忽略文档分数?

例如:

DocId    Score        SortFieldA        SortFieldB
  1      23.0041      200906030800      Test
  2      32.2774      200906020800      Test
  3      21.0632      200906030800      Apple

我希望首先按SortFieldA排序结果,然后按SortFieldB排序。因此,在上述情况下,结果应该以doc2,doc3和doc1的形式返回。但由于得分,排序顺序受到干扰。

我注意到如果文档得分相同,结果会正确排序。

设置排序字段的代码:

public override Sort GetSort()
    {
      List<SortField> sortFields = new List<SortField>();      
      sortFields.Add(new SortField(StartDateTime.ToString(), SortField.STRING, ReverseSort));
      sortFields.Add(new SortField(TitleSort.ToString(), SortField.STRING, ReverseSort));
      return new Sort(sortFields.ToArray());
    }

1 个答案:

答案 0 :(得分:0)

编辑:由于您不关心原始分数,我相信您需要先使用ConstantScoreQuery获取匹配,然后将其传递给分拣机。

尝试查看this question