如何使用明确的文章在Hibernate Search中搜索关键字?

时间:2014-04-09 08:32:00

标签: java hibernate hibernate-search

我使用Hibernate Search DSL进行查询,我需要用法语搜索一些关键字。

例如,当我使用此查询时:

Query query = queryBuilder.keyword().onField("normVal").matching("asthme").createQuery();

它只匹配字段" normVal"上的单词asthme,但我希望查询可以找到单词" l' asthme"或者" d' asthme"太

有人知道如何在Hibernate Search中做到这一点?????????

1 个答案:

答案 0 :(得分:1)

您可以在字符串中使用带有通配符的matching方法:?表示单个字符,*表示任何字符序列

因此,您的代码可能是:

 Query query = queryBuilder.keyword().onField("normVal").matching("*asthme*").createQuery();

您可以找到更多详情here

OP评论后编辑

如果你有固定的搜索值,比如带文章的单词,你也可以尝试这样的东西而不是野猫:

Query query = queryBuilder.bool()
.should(queryBuilder.keyword().onField("normVal").matching("l'asthme").createQuery())
.should(queryBuilder.keyword().onField("normVal").matching("d'asthme").createQuery())
.should(queryBuilder.keyword().onField("normVal").matching("asthme").createQuery())
.createQuery();

请注意,should方法将像OR查询运算符一样工作