java - 如何在 Hibernate Search 中使用定冠词搜索关键字?

标签 java hibernate hibernate-search

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

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

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

它只匹配字段“normVal”上的单词 asthme,但我希望查询也可以找到单词“l'asthme”或“d'asthme”。

有人知道我如何在 Hibernate Search 中执行此操作吗?????????

最佳答案

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

例如,您的代码可能是:

 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 查询运算符

关于java - 如何在 Hibernate Search 中使用定冠词搜索关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22956942/

相关文章:

java - 向右旋转二维矩阵

java - 使用来自多个 selectOneMenus 和按钮的内容填充 inputTextArea

java - 清理登录数据

indexing - 如何在 GUI 中获取 Hibernate Lucene 索引创建的统计信息?

java - 使用 hibernate-search 索引 Enum 类型字段

hibernate - Lucene:查找以特定前缀开头的所有单词

java - 未知实体bean类: null,请验证该类是否已使用@Entity注释进行标记

java - 使用 @IndexColumn 会导致 seq_num 为 0

java - 在 Java 中将具有不同布局的文件导入数据库

hibernate - Grails Hibernate session 只读