使用 Hibernate Search 对结果进行评分

发布于 2024-10-14 16:39:17 字数 47 浏览 3 评论 0原文

hibernate搜索从数据库中获得搜索结果后是否可以根据最佳匹配对结果进行排序

Is it possible for hibernate search to sort result according to best match after it has search result from the database

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甜`诱少女 2024-10-21 16:39:17

Lucene 有排序功能(默认为相关性)。

Hibernate 搜索公开了此功能(FullTextQuery.sort)。如果您不想要默认行为,您可以传递您自己的排序对象。

Sort sort = new Sort(new SortField("name"));
searchQuery.setSort(sort);
List results = searchQuery.list();

在你的情况下,默认排序应该足够了。

Lucene has a sort functionality (which defaults to relevance).

Hibernate search exposes this functionality (FullTextQuery.sort). if you do not want default behavior, you could pass your own sort object.

Sort sort = new Sort(new SortField("name"));
searchQuery.setSort(sort);
List results = searchQuery.list();

In your case default sort should be sufficient.

七婞 2024-10-21 16:39:17

默认情况下,Hibernate Search 将根据默认 Lucene 评分实现确定的结果相关性(如 doc_180 提到的)对结果进行排序。

但是,如果您对其排名方式不满意(例如,您可能希望人员实体的排名通常高于您拥有的所有其他索引实体),那么您可以执行以下两种操作之一

  1. :应该被认为更相关的实体的动态或静态提升因子(请参阅有关 @Boost 和 @DynamicBoost 注释的文档),或者
  2. 您可以通过扩展 org.apache.lucene.search.Similarity 来编写自己的自定义评分实现(请参阅Hibernate 搜索高级功能< /a>)。第 1 点中提到的提升因子只是整个评分算法中的一个因素。

By default Hibernate Search will sort results based on the relevance of the results (as doc_180 mentioned) determined by the default Lucene scoring implementation.

However, if you are not satisfied with the way the way it is doing the ranking (e.g. you may want People entities to generally be ranked higher than all the other indexed entities that you have) then you could do one of two things:

  1. Apply a dynamic or static boost factor to the entities that should be considered more relevant (see the docs on the @Boost and @DynamicBoost annotations), or
  2. You could write your own custom scoring implementation by extending org.apache.lucene.search.Similarity (see Hibernate Search Advanced Features). The boost factor mentioned in point 1 is just one factor in this overall scoring algorithm.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文