邻接矩阵聚合

邻接矩阵聚合 #

adjacency_matrix 邻接矩阵聚合允许你定义过滤表达式,并返回一个交集矩阵,矩阵中的每个非空单元格代表一个分组。你可以找到落入任何过滤器组合中的文档数量。

使用 adjacency_matrix 聚合通过将数据可视化为图形来发现概念之间的关联。

例如,下面查询可以分析不同制造公司之间的关联关系:

GET sample_data_ecommerce/_search
{
  "size": 0,
  "aggs": {
    "interactions": {
      "adjacency_matrix": {
        "filters": {
          "grpA": {
            "match": {
              "manufacturer.keyword": "Low Tide Media"
            }
          },
          "grpB": {
            "match": {
              "manufacturer.keyword": "Elitelligence"
            }
          },
          "grpC": {
            "match": {
              "manufacturer.keyword": "Oceanavigations"
            }
          }
        }
      }
    }
  }
}

返回内容

 {
   ...
   "aggregations" : {
     "interactions" : {
       "buckets" : [
         {
           "key" : "grpA",
           "doc_count" : 1553
         },
         {
           "key" : "grpA&grpB",
           "doc_count" : 590
         },
         {
           "key" : "grpA&grpC",
           "doc_count" : 329
         },
         {
           "key" : "grpB",
           "doc_count" : 1370
         },
         {
           "key" : "grpB&grpC",
           "doc_count" : 299
         },
         {
           "key" : "grpC",
           "doc_count" : 1218
         }
       ]
     }
   }
 }

让我们更仔细地查看结果

 {
    "key" : "grpA&grpB",
    "doc_count" : 590
 }
  • grpA :由 Low Tide Media 制造的产品。
  • grpB :由 Elitelligence 制造的产品。
  • 590 : 同时生产的产品数量。