我有一些在索引中排序的字段(例如lexographical String
s)。我想对更高的值给予更高的提升/分数。
在Lucene 4中执行此操作的首选方法是什么?(通过点击IndexCache获取确切的值是次优的)
(对于早期版本的Lucene,谷歌有很多点击率,但API已经发生了很大变化,并对索引系统进行了很大的改进。)
答案 0 :(得分:1)
您可以通过将Sort
传递到IndexSearcher.search的来电,按字典顺序对字段值进行排序。
SortField primarySort = new SortField("field", SortField.Type.STRING);
Sort sort = new Sort(primarySort, SortField.FIELD_SCORE);
searcher.search(query, hits, sort);
首先,将根据给定字段的词典排序,然后按相关性分数排序。您可以在构建Sort
时添加任意数量的排序字段。