如何解决Elastic NEST不允许我创建多个聚合
通过使用Kibana,我可以制作一些很好的图形,尝试将其转换为nesT。来自Kibana的JSON请求如下所示:
{
"aggs": {
"2": {
"date_histogram": {
"field": "@timestamp","fixed_interval": "30m","min_doc_count": 1
},"aggs": {
"1": {
"cardinality": {
"field": "clientip"
}
}
}
}
}
这就是我的nesT的样子:
query.Aggregations(aggs => aggs
.DateHistogram("total_count",d => d
.Field(f => f.Timestamp)
.FixedInterval("30m")
.MinimumDocumentCount(1)
)
.Cardinality("unique_count",c => c
.Field(f => f.ClientIp)
)
)
但是,生成的JSON如下所示:
{
"aggs": {
"total_count": {
"date_histogram": {
"field": "@timestamp","min_doc_count": 1
}
},"unique_count": {
"cardinality": {
"field": "clientip"
}
}
}
这很有意义,因为那是我在代码中写的。但是,我需要将cardinality
添加到date_histogram
,但是我无法弄清楚。我不能在.Aggregations()
上添加额外的.DateHistogram()
,因为它不存在。
我在做什么错了?
解决方法
这应该有效:
query.Aggregations(aggs => aggs
.DateHistogram("total_count",d => d
.Field(f => f.Timestamp)
.FixedInterval("30m")
.MinimumDocumentCount(1)
.Aggregations(childAggs => childAggs
.Cardinality("unique_count",c => c
.Field(f => f.ClientIp)
)
)
)
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。