Bil*_*BBB 8 lucene hibernate hibernate-search
Hibernate搜索根据相关性对结果进行排序,这很正常.除此之外,如果两个文档具有相同的分数,则按主键排序.
例如,
book1:id = 1,bookTitle ="hibernate search by example".
book2:id = 2,bookTitle ="hibernate search in action"
如果我正在进行查询以查找术语"hibernate search",我会有这个顺序:book1然后book2
我想颠倒这个顺序:book2然后book1.这意味着反转主键顺序.如果没有实现自定义相似性,是否有可能实现此目的?同时保持相关性秩序.
是的,您需要创建一个Sort指定所需排序的对象,并在查询中进行设置.请参阅Hibernate文档的5.1.3.3节.然后,在列表中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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2333 次 |
| 最近记录: |