【发布时间】:2021-11-11 21:52:23
【问题描述】:
我在排序时遇到问题,具体如下。
以前,代码写成
Sort sort = new Sort(new SortField[] {
SortField.FIELD_SCORE,
new SortField("field_1", SortField.STRING),
new SortField("field_2", SortField.STRING),
new SortField("field_2", SortField.LONG)
});
这是一个由stackoverflow答案粘贴的示例,用于自定义排序, Sorting search result in Lucene based on a numeric field.
虽然他不建议这是进行排序的正确方法,但这也是我公司多年来一直使用的代码。
但是当我创建一个新函数时,它需要对很多字段进行排序,并且通过执行单元测试,我发现它实际上并没有按预期工作。
我需要删除 SortField.FIELD_SCORE 以使其正常工作。如果我理解正确的话,我认为这里描述的示例建议了这一点,https://docs.jboss.org/hibernate/search/4.1/reference/en-US/html_single/#d0e5317。
即主代码将转换为
Sort sort = new Sort(new SortField[] {
new SortField("field_1", SortField.STRING),
new SortField("field_2", SortField.STRING),
new SortField("field_2", SortField.LONG)
});
所以我的问题是
-
SortField.FIELD_SCORE有什么用?字段分数如何计算? - 为什么显示
SortField.FIELD_SCORE有时会返回正确的值,有时却不返回?
【问题讨论】:
标签: java hibernate lucene hibernate-search