【发布时间】:2011-01-20 15:56:43
【问题描述】:
即使在通过排序字段之后,文档的分数也会影响搜索结果的排序顺序。有没有办法让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 的形式返回。但是因为Score,排序顺序会被打乱。
我注意到,如果文档具有相同的分数,则结果会得到正确排序。
设置排序字段的代码:
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());
}
【问题讨论】:
-
我用一个例子更新了帖子。谢谢。
-
尝试选择您的代码并使用编辑框上方的代码按钮来更好地格式化代码。或者,您可以在每行代码前放置四个空格。
标签: sorting lucene lucene.net