如何获取使用 Java API 客户端 (7.16) 构建的 ElasticSearch query/request 的 json 表示?
How to get the json representation of the ElasticSearch query/request that was built with Java API Client (7.16)?
新的Java API 客户端在 7.16 版本的 ES 中发布,Java Rest 客户端被弃用。在已弃用的客户端中可以将查询转换为 JSON。在Kibana查询debugging/tuning/profiling方便
遗憾的是,我在新的客户端文档中没有看到任何提及。所以我的问题是:
是否可以获得通过 Java API 客户端构建的查询的 JSON 表示?它可以是一些实用程序 class 或打印传出请求的客户端的日志配置。
到目前为止我发现的唯一方法是在
co/elastic/clients/transport/rest_client/RestClientTransport.java:215 from elasticsearch-java-7.16.2.jar 并检查 baos 变量的值.
看来即将推出的版本将直接支持此功能:https://discuss.elastic.co/t/elaticsearch-java-client-output-dsl/300952
与此同时,上面的讨论中给出了一个解决方法,但它并不完全有效。这是对我有用的片段:
StringWriter writer = new StringWriter();
JsonGenerator generator = JacksonJsonProvider.provider().createGenerator(writer);
request.serialize(generator, new JacksonJsonpMapper());
generator.flush();
return writer.toString();
新的Java API 客户端在 7.16 版本的 ES 中发布,Java Rest 客户端被弃用。在已弃用的客户端中可以将查询转换为 JSON。在Kibana查询debugging/tuning/profiling方便
遗憾的是,我在新的客户端文档中没有看到任何提及。所以我的问题是:
是否可以获得通过 Java API 客户端构建的查询的 JSON 表示?它可以是一些实用程序 class 或打印传出请求的客户端的日志配置。
到目前为止我发现的唯一方法是在 co/elastic/clients/transport/rest_client/RestClientTransport.java:215 from elasticsearch-java-7.16.2.jar 并检查 baos 变量的值.
看来即将推出的版本将直接支持此功能:https://discuss.elastic.co/t/elaticsearch-java-client-output-dsl/300952
与此同时,上面的讨论中给出了一个解决方法,但它并不完全有效。这是对我有用的片段:
StringWriter writer = new StringWriter();
JsonGenerator generator = JacksonJsonProvider.provider().createGenerator(writer);
request.serialize(generator, new JacksonJsonpMapper());
generator.flush();
return writer.toString();