1

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

我为此使用了 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)?

4

1 回答 1

0

从您的问题来看,您似乎只想匹配整个术语(值),即“测试类型搜索”。
为此,您可以使用QueryBuilders.termQuery(field, value) 和匹配术语,使用QueryBuilders.matchQuery(field, value)
其中 field :您要查询的文档字段 value :您想要匹配的内容。

参考 ES文档
参考 ES Java API文档

于 2016-01-04T17:51:12.537 回答