elasticsearch 查询kibana中的前n个值
我最近在kibana学习了KQL,我想根据id显示前n个值。 在此表中,每个id可能具有不同的范围。我希望看到每个ID的前2个最大可达范围。我以这张表为例:
elasticsearch 查询kibana中的前n个值,
elasticsearch,kibana,nosql-aggregation,
elasticsearch,Kibana,Nosql Aggregation,我最近在kibana学习了KQL,我想根据id显示前n个值。 在此表中,每个id可能具有不同的范围。我希望看到每个ID的前2个最大可达范围。我以这张表为例: id reach 1 10 1 12 1 3 3 7 1 13 3 12 3 90 4 12 如何根据覆盖范围选择前2名。目标: id reach 1 12 1 10 3 90 3 12 4 12 如果我只希望使用基于此源的Max Aggregate来获得top 1,
id reach
1 10
1 12
1 3
3 7
1 13
3 12
3 90
4 12
如何根据覆盖范围选择前2名。目标:
id reach
1 12
1 10
3 90
3 12
4 12
如果我只希望使用基于此源的Max Aggregate来获得top 1,那么这可以很容易地完成。
使用“最大值”时,仅取前1个值。
如果我们想取超过1个值,我们该怎么做?
谢谢您您需要使用术语聚合来获取所有唯一ID,然后执行top hits子聚合来获取每个ID的前2名:
{
“aggs”:{
“ID”:{
“条款”:{
“字段”:“id”,
“尺寸”:3
},
“aggs”:{
“顶端到达”:{
“热门歌曲”:{
“排序”:[
{
“到达”:{
“订单”:“描述”
}
}
],
“_来源”:{
“包括”:[“到达”]
},
“尺寸”:2
}
}
}
}
}
}
如果您事先知道ID,则可以使用发出每个ID的查询:
GET test index/\u msearch
{ }
{“大小”:2,“查询”:{“术语”:1},“排序”:[{“到达”:{“顺序”:“描述”}]}
{ }
{“size”:2,“query”:{“term”:2},“sort”:[{“reach”:{“order”:“desc”}]}
{ }
{“大小”:2,“查询”:{“术语”:3},“排序”:[{“到达”:{“顺序”:“描述”}]}
您能更详细地解释一下预期结果的逻辑吗?@OpsterElasticsearchNinja您好,很抱歉缺少信息,我添加了更多信息。您好,谢谢您的回答,但我们如何在可视化中做到这一点?您需要在Kibana中使用术语聚合拆分行,并在“度量”下选择热门点击聚合。它应该会起作用。