java - hibernate 搜索: exact phrase matching

标签 java hibernate lucene hibernate-search

使用 Hibernate Search,我无法搜索到确切的句子。

例如,我的索引中有以下句子:

1 - New York weather
2 - New York

我只想获取与“New York”匹配的第 2 行,因此我进行以下查询:

qb.phrase().onField("label").sentence("New York").createQuery()

但是这个查询同时返回“纽约”和“纽约天气”,也就是说,当我想像等号一样使用它时,我的句子就像前缀一样使用。

如何使用 hibernate 搜索来做到这一点?

最佳答案

在 5.1.2.4 中提到了“倾斜因子”

https://docs.jboss.org/hibernate/search/4.1/reference/en-US/html_single/#search-query-querydsl

尝试将斜率因子设置为零?

qb.phrase().withSlop(0).onField("label").sentence("纽约").createQuery()

还可以尝试使用本问题中提到的 Lucene API。

Finding exact match using Lucene search API

您的用例是直接的,可能不保证 Hibernate Search 查询 DSL

关于java - hibernate 搜索: exact phrase matching,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33218294/

相关文章:

java - 找不到 MessageBodyReader

java - JPA 不删除数据库行

elasticsearch - Elasticsearch 得分差异

java - java lucene 语义搜索结果

java - 如何从 Spring 应用程序内部加载此文件路径

java - Springboot : startup issue(missing ServletWebServerFactory bean)

java - 如何在 java 中为 Selenium webdriver 编写我自己的自定义定位器?

java - 当用户具有多个角色时,Hibernate 会获得两次值(value)

java - Spring Boot - 出现意外错误(类型=错误请求,状态=400)。缺少必需的请求正文

c# - 在 Azure 认知搜索中使用正则表达式(lucene 语法)搜索单个字符