C# 记录 ES(ElaschSearch)时间聚合DateHistogram使用

提示:本文章仅参考作用


问题

问题
使用ES进行数据查新时,要根据时间进行聚合分组,如查询某一天,根据每小时分组,但数据索引文档中没有么某一个时间节点的时候,如3-4点的数据,需要对查询结果进行补全。


提示:以下正文内容,案例可供参考

注:ES版本:7.0.1 || NEST 7.3.0

解决

如下代码

		 DateHistogram = new DateHistogramAggregation("date_histogram")
                    {
                         Field ="你需要分组的时间格式字段",
                         //Format = "yyyy-MM-dd":"HH:mm:ss",
	                     CalendarInterval    =  DateInterval.Day:DateInterval.Hour,  
                         MinimumDocumentCount = 0,
                         ExtendedBounds = new ExtendedBounds<DateMath>
                         {
                         	Minimum = new DateTime(),
                            Maximum =  new DateTime().AddDay(1)
                         }
                    },

延申

取出对应聚合桶后可直接使用Date属性做相对应处理,KeyAsString 可直接获取到聚合分组的key

总结

上述中 Format 在ExtendedBounds 属性存在时,不可使用。
MinimumDocumentCount 对文档出现次数符合条件。
ExtendedBounds 为规定一个范围 对此范围的数据进行补充。
ES的学习任重道远。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值