Hibernate搜索与带破折号的字符串完全匹配

时间:2017-11-27 11:09:23

标签: java hibernate hibernate-search

我想精确搜索具有“xx-xx-xx”格式的实体字段。

该实体如下所示:

@Entity
@Indexed
class Resource {

    @Field
    private String address; // has "xx-xx-xx" format
}

查询创建过程如下:     queryBuilder.keyword().onFields("resource").matching(searchQuery).createQuery()

假设我有两个具有以下地址的资源:

aa-bb-cc
cc-dd-ee

当我运行搜索查询"aa-bb-cc"时,我希望只返回第一个资源,而是让搜索返回两个资源。

我应该根据资源字段进行更改以及进行精确搜索?

1 个答案:

答案 0 :(得分:2)

您需要为此字段禁用默认分析器,以便将其视为"确切"关键字:

@Entity
@Indexed
class Resource {

    @Field(analyze=Analyze.NO)
    private String address; // has "xx-xx-xx" format
}