ES-将旧版ElasticSearch从Rest转换为高级客户端

时间:2020-11-04 09:58:59

标签: java elasticsearch

我想知道以下带有弹性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的逻辑...

感谢帮助

0 个答案:

没有答案
相关问题