ElasticSearch新的Java API打印创建的问题

63lcw9qa  于 2023-01-25  发布在  ElasticSearch
关注(0)|答案(1)|浏览(113)

我试用了新的Java Client for Elastic 8.1.1,在旧版本中,我可以使用searchRequest.source()打印出生成的json查询。
我不能找出actuallay什么方法/服务,我可以使用这样做的新客户端。我的代码看起来:

final Query range_query = new Query.Builder().range(r -> r.field("pixel_x")
            .from(String.valueOf(lookupDto.getPixel_x_min())).to(String.valueOf(lookupDto.getPixel_x_max())))
            .build();

    final Query bool_query = new Query.Builder().bool(t -> t.must(range_query)).build();

    SearchRequest sc = SearchRequest.of(s -> s.query(bool_query).index(INDEX).size(100));

SearchRequest对象提供source()方法,但ist值为空。

cyvaqqii

cyvaqqii1#

您可以使用下面的代码打印查询与新的弹性Java客户端:

Query termQuery = TermQuery.of(t -> t.field("field_name").value("search_value"))._toQuery();

StringWriter writer = new StringWriter();
JsonGenerator generator = JacksonJsonProvider.provider().createGenerator(writer);
termQuery.serialize(generator, new JacksonJsonpMapper());
generator.flush();
System.out.println(writer.toString());

相关问题