即使是不成熟的尝试,也胜于胎死腹中的策略。

ES 聚合查询和聚合分组查询的结果不一致的问题

Elasticsearch | 作者 moran | 发布于2016年08月09日 | 阅读数:11277

    在用kibana做日志分析时,用Metric统计唯一mac地址,条件输入某地区。和用别的按照地区分组统计唯一mac日志,同样的地区,统计出来的值不一致。
如图:
按照地区统计,值是129
1.jpg

 
直接统计 值是125
2.jpg

 
直接查询ES 统计写法 按照地区分组:
"aggs": {
    "2": {
      "terms": {
        "field": "geoip.province_name",
        "size": 100,
        "order": {
          "1": "desc"
        }

      },
      "aggs": {
        "1": {
          "cardinality": {
            "field": "data.mac.raw"
          }
        }
      }
    }
  }
查询出来也是129
 
直接查询
"aggs": {
    "1": {
      "cardinality": {
        "field": "data.mac.raw"
      }
    }
  }
结果是125
前面的条件都有
"query": {
        "query_string": {
          "query": "geoip.province_name:\"Zhejiang\"",
          "analyze_wildcard": true
        }
      }
前面条件是完全一样的。
 
然后我用查询的结果自己分析,结果也是125.
 
不知道根据地区分组的时候发生了什么,导致结果不一致?
 
已邀请:

moran

赞同来自:

ES版本2.3.2 刚才测试发现 如果Metric的值小于96  分组的unique count的值等于metric
如果Metric的值大于等于97  unique count的值大于metric 

moran

赞同来自:

问题已经找到 precision_threshold 精度的问题

要回复问题请先登录注册