根据多匹配查询 (https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-multi-match-query.html) 的文档,可以通过前缀搜索多个属性。您所要做的就是将参数“type”设置为“phrase_prefix”。不幸的是,我无法在 Elastic Java Api ( https://www.elastic.co/guide/en/elasticsearch/client/java-api/1.6/multimatch.html) 中找到该选项。我试过类似的东西:
QueryBuilder builder = QueryBuilders
.multiMatchQuery("query", "property1", "property2");
但找不到设置“类型”参数的位置。我知道纯粹的休息是解决方案,但我仅限于 java api。
我使用的是 org.elasticsearch.client:transport 版本 5.2.2。
最佳答案
您必须添加 .type(MatchQueryBuilder.Type.PHRASE_PREFIX)
给你的 build 者。
例子:
QueryBuilder builder = QueryBuilders
.multiMatchQuery("query", "property1", "property2")
.type(MatchQuery.Type.PHRASE_PREFIX)
关于java - 如何使用 Elastic Java Api 而不是纯 REST 构建类型设置为 "phrase_prefix"的多匹配查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43063214/