首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate搜索排序

Hibernate搜索排序
EN

Stack Overflow用户
提问于 2015-05-13 18:21:19
回答 1查看 4.3K关注 0票数 8

Hibernate搜索是根据相关性对结果进行排序,这是正常的。此外,如果两个文档的得分相同,则按主键排序。

例如,

book1 : id=1,bookTitle = "hibernate按示例搜索“。

book2 : id=2,bookTitle = "hibernate在行动中的搜索“

如果我执行一个查询来查找术语"hibernate搜索“,我将得到以下顺序: book1然后book2

我想倒转这个顺序: book2,book1。这意味着转换主键顺序。有没有可能在不实现自定义相似性的情况下做到这一点?同时保持关联的有序性。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-13 21:24:47

是的,您需要创建一个指定所需排序的Sort对象,并在查询中设置它。见Section 5.1.3.3 of the Hibernate docs。然后,在SortFields的列表中传递SortField.FIELD_SCORE。SortField的构造函数还允许您逆转顺序。

代码语言:javascript
复制
org.hibernate.search.FullTextQuery query = s.createFullTextQuery( luceneQuery, MyEntity.class );
org.apache.lucene.search.Sort sort = new Sort(
    SortField.FIELD_SCORE, 
    new SortField("id", SortField.STRING, true));
query.setSort(sort);
List results = query.list();
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30222490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档