【发布时间】:2011-01-30 05:53:24
【问题描述】:
hibernate search在从数据库中得到搜索结果后,是否可以根据最佳匹配对结果进行排序
【问题讨论】:
标签: hibernate lucene hibernate-search
hibernate search在从数据库中得到搜索结果后,是否可以根据最佳匹配对结果进行排序
【问题讨论】:
标签: hibernate lucene hibernate-search
Lucene 具有排序功能(默认为相关性)。
Hibernate 搜索公开了此功能 (FullTextQuery.sort)。如果你不想要默认行为,你可以传递你自己的排序对象。
Sort sort = new Sort(new SortField("name"));
searchQuery.setSort(sort);
List results = searchQuery.list();
在您的情况下,默认排序就足够了。
【讨论】:
默认情况下,Hibernate Search 将根据默认 Lucene 评分实现确定的结果的相关性(如 doc_180 所述)对结果进行排序。
但是,如果您对排名方式不满意(例如,您可能希望 People 实体的排名通常高于您拥有的所有其他索引实体),那么您可以做以下两件事之一:
【讨论】: