我的最终目标是对输入的短语执行精确搜索(示例:测试类型搜索),如果精确短语与我正在查找的列匹配,则提升结果。
我为此使用 Elasticsearch Java API。 请找到如下代码,
QueryBuilder queryBuilder = QueryBuilders.matchPhraseQuery("_all", "Test Type Search");
SearchResponse response = client.prepareSearch("index_name")
.setQuery(queryBuilder)
.setFrom(1)
.setSize(10)
.execute()
.actionGet();
我想知道如何提升索引中包含该确切值的字段。
上述响应还返回具有以下值的响应:“测试代码用于此类型的搜索”,而不完全是“测试类型搜索”。我该如何纠正这个问题?
有什么方法可以找到正确的 Elasticsearch Java API 文档 (2.0.0)?
最佳答案
从您的问题来看,您似乎只想匹配整个术语(值),即“测试类型搜索”。
为此,您可以使用QueryBuilders.termQuery(field, value)
对于匹配项,
使用QueryBuilders.matchQuery(field, value)
其中
field : 您要查询的文档字段
value :您到底想要匹配什么。
关于java - 使用匹配短语(精确搜索)子句的 Elasticsearch Java API Boost 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33876389/