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

标签 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");

但找不到设置“类型”参数的位置。我知道纯粹的休息是解决方案,但我仅限于 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/

相关文章:

java - 我如何允许在 android 中搜索也适用于字符重音?

java - 使用Socket编程发送文件(大)

java - 并发目录遍历算法挂起问题

nested - 如何在ElasticSearch上对嵌套文档使用构面过滤

elasticsearch - 运行测试时服务 elasticsearch 不可见

java - 无法获得实现扩展另一个接口(interface)以进行编译的接口(interface)的 Java 枚举

elasticsearch - Kibana返回结果,其中特定字段是唯一的

java - Elasticsearch Java API 2.3 问题

java - elasticsearch渗透java api示例

java - ElasticSearch Java API : Enabling fielddata on text fields