elasticsearch Kibana数据表嵌套对象计数,elasticsearch,kibana,elasticsearch,Kibana" /> elasticsearch Kibana数据表嵌套对象计数,elasticsearch,kibana,elasticsearch,Kibana" />

elasticsearch Kibana数据表嵌套对象计数

elasticsearch Kibana数据表嵌套对象计数,elasticsearch,kibana,elasticsearch,Kibana,我正在使用Kibana版本6.5.1 我的文档如下所示: file_type | count ------------------ png | 1 pdf | 4 首先 第二 { "id": 12346, "source": "stackoverflow", "creation_date": "2020-10-14" "files": [ {

我正在使用Kibana版本6.5.1

我的文档如下所示:

file_type | count
------------------
png       | 1
pdf       | 4
首先

第二

{
"id": 12346,
"source": "stackoverflow",
"creation_date": "2020-10-14"
"files": [
 {
    "file_id": 447,
    "file_name": "example.pdf",
    "file_type": "pdf"
    },
    {
    "file_id": 448,
    "file_name": "anotherOne.pdf",
    "file_type": "pdf"
  }
]
}
等等

我想创建如下所示的数据表:

file_type | count
------------------
png       | 1
pdf       | 4
因此,在左边我们可以看到files.file_类型,在右边可以看到所有文档中每个文件的计数

我已尝试设置files.file\u id的唯一计数指标,并拆分字段files.file\u type.keyword的聚合行

但我得到这张桌子:

file_type | count
------------------
png       | 3
pdf       | 5
如果嵌套的“文件”字段中至少有一个与文件类型匹配的文件,那么就可以按它看起来的样子计算一个文档中的所有文件

我怎样才能让它看起来像第一张桌子?度量中的JSON输入会有帮助吗?

您必须将“文件”字段映射为嵌套数据类型才能使其工作。 然后使用嵌套聚合

一个包含示例数据的快速示例:

映射:

PUT test/_mapping
{
  "properties": {
    "files": {
      "type": "nested"
    }
  }
}
查询:

GET test/_search?filter_path=aggregations
{
  "size": 0, 
  "aggs": {
    "files_nested": {
      "nested": {
        "path": "files"
      },
      "aggs": {
        "files_type": { "terms": { "field": "files.file_type.keyword" } }
      }
    }
  }
}
答复如下:

{
  "aggregations" : {
    "files_nested" : {
      "doc_count" : 5,
      "files_type" : {
        "doc_count_error_upper_bound" : 0,
        "sum_other_doc_count" : 0,
        "buckets" : [
          {
            "key" : "pdf",
            "doc_count" : 4
          },
          {
            "key" : "png",
            "doc_count" : 1
          }
        ]
      }
    }
  }
}

您是否尝试了文件类型聚合的唯一计数?@Nejatians是的,在这种情况下,每个文档中显示两个唯一类型的2 pdf和2 png。请添加映射。您的字段映射为嵌套字段?谢谢。你知道有没有一种方法可以把这个查询放在数据表可视化上吗?对于一个查询,你可能可以使用带有?format=csv的_sql端点,但是如果你想在kibana中这样做,有一些限制,不幸的是,kibana不管理嵌套查询,因此您必须进行转换或在特定索引中添加聚合数据才能执行此操作