【发布时间】:2022-01-15 16:55:57
【问题描述】:
我的 Elasticsearch 文档如下所示;我在 60 秒间隔的桶中创建了一个平均聚合
{
"version" : 4,
"metric1" : 0.688872,
"metric2" : 0.021005,
"metric3" : 0.578913,
"metric4" : 71.57523,
"metric5" : 10.71166,
"Agentid" : "12345",
"epoch" : 1638173827064
}
我的聚合代码如下所示;
var response = await _client.SearchAsync<MyPOCO>(s => s
.Index(indexName)
.TrackTotalHits(true)
.Size(0)
.Query(q => q
.Bool(b => b
.Must(mu => mu
.Match(m => m
.Field("AgentId")
.Query(Convert.ToString(AgentId))
)
)
.Filter(fi => fi
.DateRange(r => r
.Field("epoch")
.GreaterThanOrEquals(Convert.ToString(StartTime))
.LessThan(Convert.ToString(EndTime))
.Format("epoch_millis")
)
)
)
)
.Aggregations(a => a
.DateHistogram("metricsperminute", ab => ab
.Field("ts")
.FixedInterval("1m")
.Aggregations(x => x
.Average("metric1", m => m
.Field(o => o.metric1)
)
.Average("metric2", n => n
.Field(o => o.metric2)
)
.Average("metric3", o => o
.Field(o => o.metric4)
)
.Average("metric5", p => p
.Field(o => o.metric5)
)
)))
.Sort(sort => sort.Ascending("epoch")));
我对如何在聚合中获取超过 10k 条记录/存储桶有点迷茫?如何进行分页或滚动?请帮忙。
【问题讨论】:
标签: c# .net elasticsearch nest elasticsearch-aggregation