首页 > 解决方案 > ES - 将旧版 ElasticSearch 从 Rest 转换为高级客户端

问题描述

我想知道弹性 5 - 7 的以下查询的等价物是什么(对我来说没关系)

我知道此查询已弃用,但实际上我正在尝试将旧版 1.7.5 集群与高级 ES 集群一起使用。我做了一些测试,尽管文档指出它不支持我尝试过并且大多数简单的操作都有效。剩下的是转换一些查询,如下例所示

   {
  "size" : 3000,
  "query" : {
  "filtered" : {
    "filter" : {
      "bool" : {
        "must" : [ {
          "terms" : {
            "source" : [ "o365mail" ]
          }
        }, {
          "range" : {
            "bckdate" : {
              "from" : "1549360021398l",
              "to" : null,
              "include_lower" : true,
              "include_upper" : true
            }
          }
        } ]
      }
    }
  }
  },
  "fields" : "*"
}

到目前为止我尝试过的是7.9.3https ://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.9/java-rest-high.html

SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
        BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();
        boolQueryBuilder
                .must(QueryBuilders.termsQuery(IndexFields.SOURCE.getIndexName(),Arrays.asList(Source.O365MAIL.toString().toLowerCase())))
                .must(QueryBuilders.rangeQuery("bckdate").gte(1549360021398l).lte(null));

        sourceBuilder.query(boolQueryBuilder);
        SearchRequest sr = new SearchRequest();
        sr.source(sourceBuilder);
        SearchResponse searchResponse2 = client.search(sr, RequestOptions.DEFAULT);

调试的查询是:

{
  "bool" : {
    "must" : [
      {
        "terms" : {
          "source" : [
            "o365mail"
          ],
          "boost" : 1.0
        }
      },
      {
        "range" : {
          "bckdate" : {
            "from" : 1549360021398,
            "to" : null,
            "include_lower" : true,
            "include_upper" : true,
            "boost" : 1.0
          }
        }
      }
    ],
    "adjust_pure_negative" : true,
    "boost" : 1.0
  }
}

我想知道遗留代码的过滤器是否相同,因为响应的数据几乎相同。

我不需要Filters像遗留查询一样打破逻辑......

感谢帮助

标签: javaelasticsearch

解决方案


推荐阅读