我想精确搜索格式为“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"
时,我希望只返回第一个资源,但相反,我让搜索返回了两个资源。
我应该如何更改以按资源字段进行精确搜索?
最佳答案
您需要禁用此字段的默认分析器,以便将其视为“精确”关键字:
@Entity
@Indexed
class Resource {
@Field(analyze=Analyze.NO)
private String address; // has "xx-xx-xx" format
}
关于java - Hibernate 搜索带破折号的字符串的精确匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47509548/