• ElasticSearch RestHighLevClient 之聚合操作


    整合应用

    1. // 求不同价格的数量
    2. @Test
    3. public void testAggsPrice() throws IOException {
    4. SearchRequest searchRequest = new SearchRequest("fruit");
    5. SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
    6. sourceBuilder.aggregation(AggregationBuilders.terms("group_price").field("price"));
    7. searchRequest.source(sourceBuilder);
    8. SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
    9. Aggregations aggregations = searchResponse.getAggregations();
    10. ParsedDoubleTerms terms = aggregations.get("group_price");
    11. Listextends Terms.Bucket> buckets = terms.getBuckets();
    12. for (Terms.Bucket bucket : buckets) {
    13. System.out.println(bucket.getKey() + ", "+ bucket.getDocCount());
    14. }
    15. }
    1. // 求不同名称的数量
    2. @Test
    3. public void testAggsTitle() throws IOException {
    4. SearchRequest searchRequest = new SearchRequest("fruit");
    5. SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
    6. sourceBuilder.aggregation(AggregationBuilders.terms("group_title").field("title"));
    7. searchRequest.source(sourceBuilder);
    8. SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
    9. Aggregations aggregations = searchResponse.getAggregations();
    10. ParsedStringTerms terms = aggregations.get("group_title");
    11. Listextends Terms.Bucket> buckets = terms.getBuckets();
    12. for (Terms.Bucket bucket : buckets) {
    13. System.out.println(bucket.getKey() + ", "+ bucket.getDocCount());
    14. }
    15. }
    1. // 求和
    2. @Test
    3. public void testAggsSum() throws IOException {
    4. SearchRequest searchRequest = new SearchRequest("fruit");
    5. SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
    6. sourceBuilder.aggregation(AggregationBuilders.sum("sum_price").field("price"));
    7. searchRequest.source(sourceBuilder);
    8. SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
    9. ParsedSum parsedSum = searchResponse.getAggregations().get("sum_price");
    10. System.out.println(parsedSum.getValue());
    11. }

  • 相关阅读:
    解决typora本地图片转换成网络路径图片-防止路径改变图片丢失。
    如何假装你懂机器学习?
    C#常量.
    【毕业设计】大数据房价数据分析可视化 - python
    Vue 3的 h 函数详解
    第14章总结:lambda表达式与处理
    MySQL 索引
    集合论
    vue项目中常用正则大全
    ARM & Linux 基础学习 / Ubuntu 下的包管理 / apt工具
  • 原文地址:https://blog.csdn.net/Leon_Jinhai_Sun/article/details/126799577