2

Elasticsearch で集計を調査しているときに、HTTP ベースの JEST クライアントでは JSON クエリを介して集計機能を実装できるが、TCP ベースの Java クライアントでは実装できないことがわかりました。

私は Jest クライアントを使用しており、正常に機能するクエリ文字列を介して集計を実装しています。しかし、フィルターが増えると静かになり、面倒だと感じます。JEST クライアント (TCP クライアントの集計ビルダーのようなもの) で JSON クエリを使用する以外に集計を実装する方法があるかどうか、またそれをどのように実装するかを知りたいです。

4

2 に答える 2

0

これが私が上陸したものです:

SearchSourceBuilder searchBuilder = SearchSourceBuilder
     .searchSource()
     .size(0)
     .query(QueryBuilders.termQuery("field", "my value"))
     .aggregation(
          AggregationBuilders
              .sum("number_field_sum")
              .field("number_field")
     );
Search search = new Search.Builder(searchBuilder.toString())
     .addIndex("my-index")
     .build();
SearchResult result = jestClient.execute(search);

これはあなたが思いついたものとほとんど同じですが、クエリを に入れ、SearchSourceBuilder例を少し単純化しました。

于 2019-01-26T07:41:48.410 に答える