zoukankan      html  css  js  c++  java
  • elasticsearch 多字段聚合或者对字段子串聚合

    以下是字段子串聚合,截取 'your_field' 前八位进行聚合的

            Script script = new Script("doc['your_field'].getValue().substring(0,8)");
            CardinalityAggregationBuilder pointCardinality = AggregationBuilders.cardinality("pointCardinality").script(script).precisionThreshold(400000);
            SearchResponse totalPointResponse = client.prepareSearch("index_name").setTypes("type_name")
                    .setQuery(boolQueryBuilder)
                    .addAggregation(pointCardinality)
                    .execute()
                    .actionGet();
            Cardinality cardinalityTotal = totalPointResponse.getAggregations().get("pointCardinality");

    多字段聚合,就是需要修改Script内容(plainless),例如根据条件选取字段等:

    eg: 

    if(doc['camera_dev_name'].size() != 0){doc['camera_dev_name'].getValue().substring(0,8)}else{doc['ap_dev_name.keyword'].getValue().substring(0,8)}

     只需改变Script内容。

  • 相关阅读:
    bash编程2
    bash简介1
    grep文本处理工具
    用户的环境变量
    用户,组,权限
    yum与rmp
    逻辑卷管理
    磁盘配额
    磁盘创建
    创建计划任务
  • 原文地址:https://www.cnblogs.com/chenmz1995/p/11985528.html
Copyright © 2011-2022 走看看