hibernate-search中是否有一种方法可以通过找到搜索词的字段进行分析?

时间:2017-12-15 11:12:12

标签: java hibernate lucene hibernate-search

考虑以下索引实体:

@Entity
@Indexed
public class Document {

    ...

    @Field
    private String title;

    @Field
    private String text;

}

是否有办法向用户提供包含两个选项titletext的方面,其中包含在titletext中找到搜索字词的文档数量} 分别?并且用户应该能够选择这些选项以仅搜索有趣的字段。

例如,有三个文件:

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

搜索查询是“一个”:然后方面将是:

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

1 个答案:

答案 0 :(得分:1)

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

  1. 一个过滤器"标题或文字",没有分面
  2. 只有"标题"领域,标题为"标题"字段
  3. 只有"文字"字段,"文字"字段

    然后从第一个查询中收集结果,"标题"来自第二个查询的facet和" text"第三个问题的方面。

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