问题描述
通过使用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)
)
)
)
)