重点分组聚合

重点分组聚合 #

significant_terms 聚合功能可以帮助你在相对于索引中其他数据的过滤子集中识别不寻常或有趣的分组出现情况。

前景集是指你进行过滤的文档集合,背景集是指索引中所有文档的集合。 significant_terms 聚合会检查前景集中的所有文档,并与背景集中的文档进行对比,从而为重要出现情况找到相应的分数。

在示例网络日志数据中,每个文档都有一个包含访客 user-agent 的字段。此示例搜索来自 iOS 操作系统的所有请求。对这一前景集进行常规的 terms 聚合返回 Firefox,因为它在这个分组内有最多的文档数量。另一方面, significant_terms 聚合返回 Internet Explorer(IE),因为 IE 在前景集中的出现频率显著高于背景集。

GET sample_data_logs/_search
{
  "size": 0,
  "query": {
    "terms": {
      "machine.os.keyword": [
        "ios"
      ]
    }
  },
  "aggs": {
    "significant_response_codes": {
      "significant_terms": {
        "field": "agent.keyword"
      }
    }
  }
}

返回内容

...
"aggregations" : {
  "significant_response_codes" : {
    "doc_count" : 2737,
    "bg_count" : 14074,
    "buckets" : [
      {
        "key" : "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)",
        "doc_count" : 818,
        "score" : 0.01462731514608217,
        "bg_count" : 4010
      },
      {
        "key" : "Mozilla/5.0 (X11; Linux x86_64; rv:6.0a1) Gecko/20110421 Firefox/6.0a1",
        "doc_count" : 1067,
        "score" : 0.009062566630410223,
        "bg_count" : 5362
      }
    ]
  }
 }
}

如果 significant_terms 聚合没有返回任何结果,你可能没有使用查询来过滤结果。或者,前景集中词条的分布可能与背景集相同,这意味着前景集中没有什么异常。

背景词条频率统计信息的默认来源是整个索引。你可以使用背景过滤器来缩小这个范围,以便更聚焦