如何构建多重匹配查询,类型设置为" phrase_prefix"使用Elastic Java Api而不是纯REST

时间:2017-03-28 07:29:09

标签: java elasticsearch elasticsearch-java-api

根据多匹配查询(https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-multi-match-query.html)的文档,可以通过前缀搜索多个属性。你所要做的就是设置参数"输入" to" 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。

1 个答案:

答案 0 :(得分:6)

您必须将.type(MatchQueryBuilder.Type.PHRASE_PREFIX)添加到您的构建器。

示例:

QueryBuilder builder = QueryBuilders
    .multiMatchQuery("query", "property1", "property2")
    .type(MatchQuery.Type.PHRASE_PREFIX)