c# - Missing()方法DateHistogramAggregationDescriptor在特定条件下似乎不起作用

标签 c# .net elasticsearch nest

我需要能够使用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/

相关文章:

c# - IDENTITY INSERT 和 LINQ to SQL

.net - 是什么触发了第二代垃圾回收?

elasticsearch - Elasticsearch从日期和文档计数中获得明显的年份

elasticsearch - Elasticsearch 日志解析模块

c# - 用 protected 覆盖​​ protected 内部!

c# - 我想关闭一个文件

c# - 使用数据集的更有效方法

elasticsearch - 如何汇总几个替代术语?

c# - 添加到 ObservableCollection - 对象引用错误

c# - Task.Run(),传递参数给