【问题标题】:ElasticSearch new Java API print created quesyElasticSearch 新 Java API 打印创建查询
【发布时间】:2023-01-24 19:20:51
【问题描述】:

我试用了适用于 Elastic 8.1.1 的新 Java 客户端。 在旧版本中,我能够使用searchRequest.source() 打印出生成的 json 查询。

我不知道我可以使用什么方法/服务对新客户端执行此操作。 我的代码看起来:

    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 值为null。

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    您可以使用以下代码通过新的 Elastic 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());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多