- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下是示例文档:
{
"player": "Jim",
"score" : 5
"timestamp": 1459492890000
}
{
"player": "Jim",
"score" : 7
"timestamp": 1459492895000
}
{
"player": "Dave",
"score" : 9
"timestamp": 1459492894000
}
{
"player": "Dave",
"score" : 4
"timestamp": 1459492898000
}
我想获取每个玩家的最新分数,然后获取所有这些分数的平均值。所以答案是5.5。 Jim 的最新分数是 7,Dave 的最新分数是 4。两者的平均分是 5.5
我发现获取玩家“最新”文档的唯一方法是使用 top_hits 聚合。但是,我似乎无法在获得最新文档后进行另一次聚合。
这是我想出的最好的:
{
"aggs": {
"last_score": {
"terms": { "field": "player" },
"aggs": {
"last_score_hits": {
"top_hits": {
"sort": [ { "timestamp": { "order": "desc" } } ],
"size": 1
},
"aggs": {
"avg_score": {
"avg": { "field": "score" }
}
}
}
}
}
}
}
但是,这给了我这个错误:
Aggregator [last_score_hits] of type [top_hits] cannot accept sub-aggregations
如果还有另一种方法可以在不使用 top_hits 的情况下完成此搜索,那么我会全力以赴。
最佳答案
您正在尝试将 avg_score
作为 last_score_hits
的子聚合。要获得成功,您必须将 avg_score
作为 last_score
的子聚合。请看下面的例子:
{
"aggs": {
"last_score": {
"terms": {
"field": "player"
},
"aggs": {
"last_score_hits": {
"top_hits": {
"sort": [
{
"timestamp": {
"order": "desc"
}
}
],
"size": 1
}
},
"avg_score": {
"avg": {
"field": "score"
}
}
}
}
}
}
关于elasticsearch - 如何在 elasticsearch 中聚合 top_hits 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36349897/
我正在尝试获取上次事件为“连接”的用户列表。理想情况下,我希望将其作为 Kibana 中的指标可视化或数据表,分别显示最后连接的用户数量和用户列表。但是,我已经放弃了在 Kibana 中执行此操作的能
这是我的带有嵌套价格数组的文档/映射: { "name": "Foobar", "type": 1, "prices": [ {
我正在使用 Elasticsearch GeoHash 网格聚合进行 map 聚类。查询平均返回 100-200 个桶。每个桶都使用 top_hits 聚合,我用它为每个聚合集群返回 3 个文档。 问
我想按地址分组,然后按日期获取最新地址,然后按状态过滤此结果。 ex {address: 'A', date: '10-10-1991', status: 'sold'} {address:
以下是示例文档: { "player": "Jim", "score" : 5 "timestamp": 1459492890000 } { "player": "Ji
我正在运行一个大号的 elasticsearch 过滤器。 (约 1000 万次点击)结果。我的 from+size 最大值是默认值(10,000 次匹配)。我想基于一个字段进行聚合,并返回所有桶中过
我是一名优秀的程序员,十分优秀!