gpt4 book ai didi

java - 在 hibernate 搜索中是否有一种方法可以按找到搜索词的字段进行分面?

转载 作者:行者123 更新时间:2023-12-02 11:51:52 27 4
gpt4 key购买 nike

考虑以下索引实体:

@Entity
@Indexed
public class Document {

...

@Field
private String title;

@Field
private String text;

}

有没有办法向用户呈现一个包含两个选项 titletext 的构面,以及在 title 中找到搜索词的文档计数分别是 text 吗?用户应该能够选择这些选项来仅按感兴趣的字段进行搜索。

例如有三个文档:

{ "title" : "One", "text" : "One" }
{ "title" : "One and Two", "text" : "Two" }
{ "title" : "Three", "text" : "Three and Two" }

搜索查询是“one”:那么构面将是:

{ "title" : 2, "text" : 1 }

最佳答案

Hibernate Search 中没有这样的内置功能,但您可以自己实现。不要运行单个查询,而是运行三个查询:

  1. 带有“标题或文本”过滤器,无分面
  2. 仅在“标题”字段上有过滤器,在“标题”字段上有分面
  3. 仅在“文本”字段上使用过滤器,并在“文本”字段上进行分面

然后收集第一个查询的结果、第二个查询的“标题”方面以及第三个查询的“文本”方面。

有关 Hibernate 中分面的更多信息搜索:https://docs.jboss.org/hibernate/stable/search/reference/en-US/html_single/#query-faceting

关于java - 在 hibernate 搜索中是否有一种方法可以按找到搜索词的字段进行分面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47831166/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com