给定一个BoolQuery示例,如何找出将发送到ES服务器的JSON字符串?
请注意,我使用的是ES7。
我尝试了toString(),但它返回类似于“co.elastic.clients.elasticsearch._types.query_dsl.BoolQuery@3cec79d3”的内容。
我看到有一个serialize()方法,但是我一辈子都搞不清楚如何构造这两个参数(JsonGenerator和JsonpMapper)。
我尝试了Amit的建议,从SearchRequest对象的源代码中获取json,但似乎不起作用。例如,在下面的示例代码中,最后一行引发了NullPointerException,因为sReq.source()返回null。
SearchRequest sReq = SearchRequest.of(s -> s
.index("products")
.query(q -> q
.match(t -> t
.field("name")
.query("hello")
)
)
);
String sReqJson = sReq.source().toString();
2条答案
按热度按时间2w2cym1i1#
如果您使用的是Elasticsearch 7客户端,则必须具有搜索请求对象,您可以使用
searchRequest.source().toString()
在其上获取搜索JSON。7uhlpewt2#
我想通了: