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

Woj*_*cki 4 java elasticsearch elasticsearch-java-api

根据多匹配查询(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");
Run Code Online (Sandbox Code Playgroud)

但无法找到设置"类型"参数的位置.我知道纯粹的休息是解决方案,但我只限于java api.

我正在使用org.elasticsearch.client:transport的5.2.2版.

Rom*_*hyn 7

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

例:

QueryBuilder builder = QueryBuilders
    .multiMatchQuery("query", "property1", "property2")
    .type(MatchQuery.Type.PHRASE_PREFIX)
Run Code Online (Sandbox Code Playgroud)