Elasticsearch 7.3.0 翻译 - 《Aggregations》 桶聚合 邻接矩阵聚合

邻接矩阵聚合Adjacency Matrix Aggregation

桶聚合返回邻接矩阵的形式。该请求提供了一组命名过滤器表达式,类似于过滤器聚合请求。响应中的每个桶表示交叉过滤器矩阵中的非空单元。

给定名为A,B和C的过滤器,响应将返回具有以下名称的桶:

ABC
AAA&BA&C
BBB&C
CC

交叉桶,例如A和C,使用由&符号分隔的两个过滤器名称的组合来标记。请注意,响应不包括“C&A”桶,因为这将是与“A&C”相同的文档集。据说矩阵是对称的,所以我们只返回一半。为此,我们对过滤器名称字符串进行排序,并始终使用最低的一对作为“&”分隔符左侧的值。

如果客户端希望使用除与号默认值以外的分隔符字符串,则可以在请求中传递替代分隔符参数。

Example:

PUT /emails/_bulk?refresh
{ "index" : { "_id" : 1 } }
{ "accounts" : ["hillary", "sidney"]}
{ "index" : { "_id" : 2 } }
{ "accounts" : ["hillary", "donald"]}
{ "index" : { "_id" : 3 } }
{ "accounts" : ["vladimir", "donald"]}

GET emails/_search
{
  "size": 0,
  "aggs" : {
    "interactions" : {
      "adjacency_matrix" : {
        "filters" : {
          "grpA" : { "terms" : { "accounts" : ["hillary", "sidney"] }},
          "grpB" : { "terms" : { "accounts" : ["donald", "mitt"] }},
          "grpC" : { "terms" : { "accounts" : ["vladimir", "nigel"] }}
        }
      }
    }
  }
}

在上面的例子中,我们分析电子邮件,以查看哪些组的个人交换了邮件。我们将分别获取每个组的计数以及记录交互的组对的消息计数。

Response:

{
  "took" : 41,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 3,
      "relation" : "eq"
    },
    "max_score" : null,
    "hits" : [ ]
  },
  "aggregations" : {
    "interactions" : {
      "buckets" : [
        {
          "key" : "grpA",
          "doc_count" : 2
        },
        {
          "key" : "grpA&grpB",
          "doc_count" : 1
        },
        {
          "key" : "grpB",
          "doc_count" : 2
        },
        {
          "key" : "grpB&grpC",
          "doc_count" : 1
        },
        {
          "key" : "grpC",
          "doc_count" : 1
        }
      ]
    }
  }
}

使用
这个聚合本身可以提供创建无向加权图所需的所有数据。然而,当与子聚合(如日期直方图)一起使用时,结果可以提供执行动态网络分析所需的额外数据级别,其中随着时间的推移检查交互变得非常重要。

限制
对于N个过滤器,产生的桶的矩阵可以是N / 2,因此有100个过滤器的默认最大值。可以使用index.max_adjacency_matrix_filters index level设置更改此设置(注意,此设置已弃用,将在8.0+中删除)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值