Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Elasticsearch--Date math在索引中的使用

Elasticsearch--Date math在索引中的使用

作者头像
用户1174963
发布于 2018-01-17 03:23:23
发布于 2018-01-17 03:23:23
1.9K00
代码可运行
举报
文章被收录于专栏:python学习指南python学习指南
运行总次数:0
代码可运行

在Elasticsearch,有时要通过索引日期来筛选某段时间的数据,这时就要用到ES提供的日期数学表达式

  描述:

  特别在日志数据中,只是查询一段时间内的日志数据,这时就可以使用日期数学表达式,这样可以限制检索的索引数量,减少集群的负载,提高系统性能。

  几乎所有的API都支持日期索引中的数学参数值。

  基于日期数学表达式的索引:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<static_name{date_math_expr{date_format|time_zone}}>

  其中各个字段的含义是:

  static_name:索引名字的静态部分

  date_math_expr:动态的日期表达式

  date_format:格式化,默认是YYYY.MM.dd

  time_zone:时区,默认是UTC

需要注意的是,在使用时要把索引以及日期表达式的部分放在<>尖括号内。

日期数学表达式的例子

比如现在的时间是2024年3月22日中午12点.utc

表达式

表达式的值

<test-{now/d}>

test-2024.03.22

<test-{now/M}>

test-2024.03.01

<test-{now/M{YYYY.MM}}>

test-2024.03

<test-{now/M-1M{YYYY.MM}}>

test-2024.02

<test-{now/d{YYYY.MM.dd\|+12:00}}>

test-2024.03.23

 在数学日期表达式中,now就是现在的时间2016.05.09 14:11:26

  • now/d,就是向一天取整,即2016.05.09 00:00:00.
  • now/M,就是向一个月取整,即2016.05。01 00:00:00

它还支持加减法,比如:

  • now+1h,就是2016.05.09 14:14:23
  • now-1d,就是2016.05.09 14:15:04

索引数据的例子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -XPOST '192.168.204.32:9200/<test-\{now%2FM\}>/type/1?pretty' -d '{"name":"xing1",age:20}'{
  "_index" : "test-2016.05.01",
  "_type" : "type",
  "_id" : "1",
  "_version" : 1,
  "_shards" : {
    "total" : 2,
    "successful" : 2,
    "failed" : 0
  },
  "created" : true
}  

注意:

  • 1 正常的日期表达式格式为now/d,但是/必须经过编码也就是%2F
  • 2 这里面所用到的大括号也要进行转义才行

 查询数据的例子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# curl -XPOST '192.168.204.42:9200/<test-\{now%2FM\}>/_search?pretty' -d '{"query":{"match_all":{}}}'
{
  "took" : 3,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 1,
    "max_score" : 1.0,
    "hits" : [ {
      "_index" : "test-2016.05.01",
      "_type" : "type",
      "_id" : "1",
      "_score" : 1.0,
      "_source" : {
        "name" : "xing1",
        "age" : 20
      }
    } ]
  }
}

 几本上所有api索引参数,支持日期索引中数学参数值。

参考

1 官方文档:Date Math support in index names

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-05-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一文读懂 WebSocket 通信过程与实现
WebSocket 是一种标准协议,用于在客户端和服务端之间进行双向数据传输。但它跟 HTTP 没什么关系,它是一种基于 TCP 的一种独立实现。
前端教程
2018/07/27
6660
一文读懂 WebSocket 通信过程与实现
Python 实现 WebSocket 通信
WebSocket 协议主要用于解决Web前端与后台数据交互问题,在WebSocket技术没有被定义之前,前台与后端通信需要使用轮询的方式实现,WebSocket则是通过握手机制让客户端与服务端建立全双工通信,从而实现了更多复杂的业务需求。
王瑞MVP
2022/12/28
1.9K0
php实现websocket实时消息推送
软件通信有七层结构,下三层结构偏向与数据通信,上三层更偏向于数据处理,中间的传输层则是连接上三层与下三层之间的桥梁,每一层都做不同的工作,上层协议依赖与下层协议。基于这个通信结构的概念。
OwenZhang
2021/12/08
2.2K0
php实现websocket实时消息推送
再聊一道面试题:Websocket
事情是这样shai儿的,早在很多年前老李曾经到一家公司去面试,面试官和老李之间产生了这样一段对话:
老李秀
2020/04/26
4.8K0
再聊一道面试题:Websocket
WebSocket从入门到精通,半小时就够!
本文原题“WebSocket:5分钟从入门到精通”,作者“程序猿小卡_casper”,原文链接见文末参考资料部分。本次收录时有改动。
JackJiang
2020/10/14
1.8K0
WebSocket从入门到精通,半小时就够!
WebSocket:5分钟从入门到精通
作者:程序猿小卡 https://segmentfault.com/a/1190000012709475 一、内容概览 WebSocket的出现,使得浏览器具备了实时双向通信的能力。本文由浅入深,介绍了WebSocket如何建立连接、交换数据的细节,以及数据帧的格式。此外,还简要介绍了针对WebSocket的安全攻击,以及协议是如何抵御类似攻击的。 二、什么是WebSocket HTML5开始提供的一种浏览器与服务器进行全双工通讯的网络技术,属于应用层协议。它基于TCP传输协议,并复用HTTP的握手通道。
企鹅号小编
2018/02/07
1.1K0
PHP实现WebSocket实例详解
WebSocket 协议是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。
超级小可爱
2023/02/20
1K0
3分钟使用 WebSocket 搭建属于自己的聊天室(WebSocket 原理、应用解析)
👋 你好,我是 Lorin 洛林,一位 Java 后端技术开发者!座右铭:Technology has the power to make the world a better place.
Lorin 洛林
2023/11/22
3.4K1
3分钟使用 WebSocket 搭建属于自己的聊天室(WebSocket 原理、应用解析)
WebSocket相关
原文:http://www.cnblogs.com/jinjiangongzuoshi/p/5062092.html 前言 今天看了一些资料,记录一下心得。 websocket是html5引入的一个新特性,传统的web应用是通过http协议来提供支持,如果要实时同步传输数据,需要轮询,效率低下 websocket是类似socket通信,web端连接服务器后,握手成功,一直保持连接,可以理解为长连接,这时服务器就可以主动给客户端发送数据,实现数据的自动更新。 使用websocket需要注意浏览器和当前的
新人小试
2018/07/05
5410
WebSocket攻防对抗一篇通
在一次做项目的时候本来是想去点击Burpsuite的Proxy界面的HTTP History选项卡来查看HTTP历史请求记录信息并做测试的,但是在查看的时候却下意识的点击到了HTTP Proxy右侧的"WebSockets History"选项卡中,从界面的交互历史中发现网站有使用WebSocket进行通信,虽然之前有对Websocket有一些简单的了解(比如:跨越问题),但是未对此进行深入研究,这让我产生了需要深入研究一下的想法
Al1ex
2024/06/21
3870
WebSocket攻防对抗一篇通
【WebSocket】505- WebSocket 入门到精通
WebSocket的出现,使得浏览器具备了实时双向通信的能力。本文由浅入深,介绍了WebSocket如何建立连接、交换数据的细节,以及数据帧的格式。此外,还简要介绍了针对WebSocket的安全攻击,以及协议是如何抵御类似攻击的。
pingan8787
2020/03/02
1.9K0
什么是WebSocket协议?
WebSocket的出现,使得浏览器具备了实时双向通信的能力。本文由浅入深,介绍了WebSocket如何建立连接、交换数据的细节,以及数据帧的格式。此外,还简要介绍了针对WebSocket的安全攻击,以及协议是如何抵御类似攻击的。
技术从心
2019/08/06
1.5K0
什么是WebSocket协议?
php基于websocket的那些事儿
本文实例讲述了php基于websocket搭建简易聊天室实践。分享给大家供大家参考。具体如下:
php007
2019/08/05
8770
php基于websocket的那些事儿
websocket
短轮询(Polling)的实现思路就是 浏览器端 每隔几秒钟向 服务器端 发送http请求,服务端在收到请求后,不论是否有数据更新,都直接进行响应。 在服务端响应完成,就会关闭这个Tcp连接 ,如下图所示:
用户10106350
2022/10/28
2.7K0
掌握Linux网络设计中的WebSocket服务器
简介: 本文探索了在Linux环境下实现WebSocket服务器的网络设计,将WebSocket服务器作为连接世界的纽带,为读者介绍了如何掌握Linux网络设计中的关键技术。文章从实现WebSocket协议到优化服务器性能和稳定性等方面进行了深入讲解。通过学习本文,读者将能够全面了解WebSocket服务器的原理和工作机制,并获得构建高效、可靠的Linux WebSocket服务器的实用技巧和最佳实践。无论是初学者还是有经验的开发人员,都能从本文中获得宝贵的知识和启发,进一步提升在Linux网络设计中的能力。让我们一同打造连接世界的纽带,掌握Linux网络设计中WebSocket服务器的精髓。
Lion Long
2024/08/15
1150
掌握Linux网络设计中的WebSocket服务器
理论联系实际:从零理解WebSocket的通信原理、协议格式、安全性
WebSocket的出现,使得浏览器具备了实时双向通信的能力。本文由浅入深,介绍了WebSocket如何建立连接、交换数据的细节,以及数据帧的格式。此外,还简要介绍了针对WebSocket的安全攻击,以及协议是如何抵御类似攻击的。
JackJiang
2018/08/23
1.7K0
you-dont-know-websocket
本文阿宝哥将从多个方面入手,全方位带你一起探索 WebSocket 技术。阅读完本文,你将了解以下内容:
阿宝哥
2020/07/29
1.8K0
you-dont-know-websocket
websocket
这时启动django项目会报错CommandError: You have not set ASGI_APPLICATION, which is needed to run the server.
GH
2020/03/19
2.9K0
腾讯云CDN支持WebSocket
Websocket是用于服务端主动向客户端推送消息的技术。传统的HTTP/HTTPS只能由客户端向服务端发起请求,服务端对请求一一响应。在需要获取服务端状态变化的场景下,如:提交的后台任务是否执行成功,只能通过客户端轮询向服务端发起请求,不仅效率低,还浪费资源(HTTP1.0下每次轮询都需要经过TCP三次握手重新建立连接)。而WebSocket的出现较好的解决了这个问题,在TCP首次建立完连接之后,该连接不自动关闭,在有效期内客户端可以继续向服务端发送消息,服务端也能主动给客户端发送消息。
yaho
2020/05/02
23.9K0
腾讯云CDN支持WebSocket
PHP webSocket实现网页聊天室
http请求只能由客户端主动发起,服务器响应的模式, 服务器无法主动向客户端推数据,websocket的出现完美的解决了这一问题。 websocket和http处于同一层,都是基于TCP协议的,客户端和服务器使用websocket通讯的时候需要握手和传输数据两步, 握手借助http状态码101 switch protocol从http协议转换到websocket协议,之后便和http协议无关了。
用户3094376
2018/09/12
7.1K0
相关推荐
一文读懂 WebSocket 通信过程与实现
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验