java - 使用匹配短语(精确搜索)子句的 Elasticsearch Java API Boost 查询

标签 java elasticsearch elasticsearch-java-api

我的最终目标是对输入的短语执行精确搜索(示例:测试类型搜索),如果精确短语与我正在查找的列匹配,则提升结果。

我为此使用 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 :您到底想要匹配什么。

引用 ES Doc
请参阅 ES Java API Doc

关于java - 使用匹配短语(精确搜索)子句的 Elasticsearch Java API Boost 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33876389/

相关文章:

java - 遍历 List 但它只显示最后一项

java - 获取列表中的列表?

java - 从 Selenium 测试 onbeforeunload 事件

ruby-on-rails - rails 5 : How to import data in Elastic Search and perform conditional search?

java - elasticsearch:返回总页数不正确

java - 如何以毫秒为单位存储日期并使用java中的集合进行排序

json - 在logstash中解析嵌套的json

ruby-on-rails-4 - 在任何列中搜索单词的任何部分

java - 如何使用 Elasticsearch Node Client Java 连接到远程服务器

scala - 使用Java API通过Scala按ID删除Elasticsearch文档