我需要能够使用NEST产生以下查询:
GET /blabla/_search
{
"size": 0,
"aggs": {
"groupby": {
"date_histogram": {
"field": "CLOSED_DATE",
"interval": "month",
"format": "yyyyMM",
"min_doc_count": 1,
"time_zone": "UTC",
"missing": "100001"
}
}
}
}
到达那里的障碍是缺少的方法。它接收缺失值的替换作为参数。因此,我想到了以下代码:
return a => a.DateHistogram(level.ToString(), dh => dh
.Field(param.Item1)
.Interval(param.Item2)
.Format(param.Item3)
.TimeZone(timeZone)
.MinimumDocumentCount(minimumDocumentCount)
.Missing(new DateTime()));
不幸的是,它不起作用;因为它实际上会生成以下查询:
{
"size": 0,
"aggs": {
"groupby": {
"date_histogram": {
"field": "CLOSED_DATE",
"interval": "month",
"format": "yyyyMM",
"min_doc_count": 0,
"time_zone": "UTC",
"missing": "0001-01-01T00:00:00"
}
}
}
}
显然,格式是这里的问题。
我该如何解决?
干杯!
最佳答案
这看起来像客户端中的错误; I have added an issue to address this。
同时,您可以通过将格式指定为
.Format(param.Item3 + "||date_optional_time")
这样Elasticsearch可以将序列化的
DateTime
反序列化为yyyy-MM-ddThh:mm:ss
格式
关于c# - Missing()方法DateHistogramAggregationDescriptor在特定条件下似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46316244/