我正在使用kibana版本6.5.1。
我的文档如下所示:
第一
{
"id": 12345,
"source": "Github",
"creation_date": "2020-10-14"
"files": [
{
"file_id": 444,
"file_name": "test.png",
"file_type": "png"
},
{
"file_id": 445,
"file_name": "test2.pdf",
"file_type": "pdf"
},
{
"file_id": 446,
"file_name": "test3.pdf",
"file_type": "pdf"
}
]
}
第二
{
"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聚合的拆分行的度量
但我得到这张table:
file_type | count
------------------
png | 3
pdf | 5
它看起来像一个文档,如果在嵌套的“files”字段中至少有一个与文件类型匹配的文件,那么它会计算一个文档中的所有文件。
我怎么能让它看起来像第一张table?度量的json输入会有帮助吗?
1条答案
按热度按时间g9icjywg1#
必须将“files”字段Map为嵌套的数据类型才能使其工作。然后使用嵌套聚合。
示例数据:
Map:
查询:
答案是: