当前位置: 首页 > news >正文

ES中聚合查询之date_histogram查询出现key_as_string 和 key含义

ES中聚合查询之date_histogram查询出现key_as_string 和 key含义

DSL语句

#实例
GET /capture_features_202407/_search
{"query": {"bool": {"must": [{"terms": {"plateNo": ["汉A00001"]}},{"range": {"absTime": {"gte": "2024-07-17 00:00:00","lt": "2024-07-23 09:38:17","time_zone": "Asia/Shanghai","format": "yyyy-MM-dd HH:mm:ss"}}}]}},"aggs": {"date_histogram": {"date_histogram": {"field": "absTime","format": "yyyy-MM-dd HH", "interval": "1h",       "time_zone": "Asia/Shanghai","order": {"_key": "asc"}, "keyed": false, "min_doc_count": 0}}}
}

返回结果

image-20240723145852873

当dateHistogram聚合查询返回的结果里面 为什么会有 key_as_string,key,其中key的形式返回的是 1721282400000 怎么去理解?

在Elasticsearch中,当你使用date_histogram聚合时,它会根据你定义的时间间隔将时间戳字段分组,并计算每个区间内的文档数量。date_histogram聚合返回的结果中包含key和key_as_string两个字段,它们分别表示不同的信息:
key: 这个字段是一个长整型数值,表示时间戳(通常是毫秒为单位)。在这个例子中,1721282400000 是一个毫秒级的时间戳,代表具体的时间点。你可以使用任何支持Unix时间戳的工具或语言内置函数将其转换为可读的日期时间格式。例如,在JavaScript中,你可以使用new Date(1721300400000)来转换。
key_as_string: 这个字段是一个字符串,表示由format参数指定的格式化日期时间。这个字段是在Elasticsearch 5.0中引入的,用于提供更直观的日期显示方式。例如,如果你的format参数设置为"yyyy-MM-dd HH:mm:ss",那么key_as_string可能会返回类似"2023-07-23 14:20:00"这样的字符串。
为了更好地理解和使用这些字段,可以:
转换key: 使用编程语言中的时间处理函数将key转换成可读的日期时间格式。
直接使用key_as_string: 如果你已经设置了format参数并且满意其输出格式,可以直接使用key_as_string字段。

实用工具推荐:

JSON在线可视化工具:https://www.spidertools.cn/#/formatJSON

Unix时间戳在线转换工具:https://www.bejson.com/convert/unix/index.html

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 从零开始创建vue3项目——包含项目初始化、element-plus、eslint、axios、router、pinia、echarts
  • 爬虫学习1:初学者简单了解爬虫的基本认识和操作(详细参考图片)
  • php_webshell免杀--从0改造你的AntSword
  • MySQL补充性文件
  • recursion depth exceeded” error
  • 【Linux常用命令】之sed命令
  • 设计模式在FileBrowser中的几个应用
  • CTF-Web习题:2019强网杯 UPLOAD
  • 1.2.2、练习题之十进制转二进制
  • MFC:以消息为基础的事件驱动系统和消息映射机制
  • 【java基础】spring springMVC springboot 的区别
  • 软件缺陷(Bug)、禅道
  • npm上传自己的包以及发布过程遇到的问题
  • Leetcode—263. 丑数【简单】
  • JCR一区级 | Matlab实现GA-Transformer-LSTM多变量回归预测
  • Google 是如何开发 Web 框架的
  • 2019.2.20 c++ 知识梳理
  • Angular 2 DI - IoC DI - 1
  • JS 面试题总结
  • js继承的实现方法
  • mockjs让前端开发独立于后端
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • php的插入排序,通过双层for循环
  • Python3爬取英雄联盟英雄皮肤大图
  • Spring Boot MyBatis配置多种数据库
  • 阿里云前端周刊 - 第 26 期
  • 和 || 运算
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 前端工程化(Gulp、Webpack)-webpack
  • 让你的分享飞起来——极光推出社会化分享组件
  • 什么软件可以提取视频中的音频制作成手机铃声
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (0)Nginx 功能特性
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (70min)字节暑假实习二面(已挂)
  • (libusb) usb口自动刷新
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (小白学Java)Java简介和基本配置
  • (转)ORM
  • (转)程序员疫苗:代码注入
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET Core 版本不支持的问题
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .vimrc 配置项
  • @Autowired多个相同类型bean装配问题
  • [240527] 谷歌 CEO 承认 AI 编造虚假信息问题难解(此文使用 @gemini 命令二次创作)| ICQ 停止运作
  • [AIGC] Java 和 Kotlin 的区别
  • [C#]使用DlibDotNet人脸检测人脸68特征点识别人脸5特征点识别人脸对齐人脸比对FaceMesh