【问题标题】:How to get the json representation of the ElasticSearch query/request that was built with Java API Client (7.16)?如何获取使用 Java API Client (7.16) 构建的 ElasticSearch 查询/请求的 json 表示?
【发布时间】:2022-02-04 15:36:40
【问题描述】:

在 7.16 版本的 ES 中发布了一个新的 Java API Client,Java Rest Client 已被弃用。在已弃用的客户端中可以将查询转换为 JSON。方便在 Kibana 中调试/调优/分析查询。

很遗憾,我在新的客户端文档中没有看到任何提及。所以我的问题是:

是否可以获得通过 Java API 客户端构造的查询的 JSON 表示形式?它可以是打印传出请求的客户端的某些实用程序类或日志配置。

【问题讨论】:

    标签: java elasticsearch elasticsearch-7 elasticsearch-java-api


    【解决方案1】:

    到目前为止我发现的唯一方法是在 co/elastic/clients/transport/rest_client/RestClientTransport.java:215 来自 elasticsearch-java-7.16.2.jar 并检查 baos 变量的值。

    【讨论】:

      【解决方案2】:

      在即将发布的版本中似乎将直接支持此功能:https://discuss.elastic.co/t/elaticsearch-java-client-output-dsl/300952

      与此同时,上述讨论中给出了一种解决方法,但它并不完全奏效。这是一个适合我的 sn-p:

      StringWriter writer = new StringWriter();
      JsonGenerator generator = JacksonJsonProvider.provider().createGenerator(writer);
      request.serialize(generator, new JacksonJsonpMapper());
      generator.flush();
      return writer.toString();
      

      【讨论】:

        猜你喜欢
        • 2022-06-30
        • 1970-01-01
        • 1970-01-01
        • 2023-03-03
        • 2019-12-24
        • 2016-08-25
        • 1970-01-01
        • 1970-01-01
        • 2017-10-18
        相关资源
        最近更新 更多