我有一些在索引中排序的字段(例如 lexographical String
s)。我想给更高的值更高的提升/分数。
在 Lucene 4 中执行此操作的首选方法是什么?(通过对 IndexCache 的命中来获得准确的值是次优的)
(早期版本的 Lucene 有很多谷歌点击,但是随着索引系统的巨大改进,API 发生了很大变化。)
您可以通过将 a 传递到对IndexSearcher.searchSort
的调用来按字典顺序对字段值进行排序。
SortField primarySort = new SortField("field", SortField.Type.STRING);
Sort sort = new Sort(primarySort, SortField.FIELD_SCORE);
searcher.search(query, hits, sort);
这将首先按给定字段的字典顺序排序,然后按相关性得分。在构建Sort
.