Hibernate搜索是根据相关性对结果进行排序,这是正常的。此外,如果两个文档的得分相同,则按主键排序。
例如,
book1 : id=1,bookTitle = "hibernate按示例搜索“。
book2 : id=2,bookTitle = "hibernate在行动中的搜索“
如果我执行一个查询来查找术语"hibernate搜索“,我将得到以下顺序: book1然后book2
我想倒转这个顺序: book2,book1。这意味着转换主键顺序。有没有可能在不实现自定义相似性的情况下做到这一点?同时保持关联的有序性。
发布于 2015-05-13 21:24:47
是的,您需要创建一个指定所需排序的Sort对象,并在查询中设置它。见Section 5.1.3.3 of the Hibernate docs。然后,在SortFields的列表中传递SortField.FIELD_SCORE。SortField的构造函数还允许您逆转顺序。
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();https://stackoverflow.com/questions/30222490
复制相似问题