(本API基于Elasticsearch7.7版本)
从本节开始我们借助Kibana工具编写api

1、多索引支持

大部分的API可以支持跨多个索引查阅索引信息
例如:

GET /test1,test2,test2/_search
{"query":{"query_string": {"fields": ["message"],"query": "WARN"}}
}

它还支持通配符
例如:

GET /test*/_search
{"query":{"query_string": {"fields": ["message"],"query": "WARN"}}
}

并且它还有排除的能力使用-
例如:我想查询所有的test索引并且不查询test3可以这样写

GET /test*,-test3/_search
{"query":{"query_string": {"fields": ["message"],"query": "WARN"}}
}

所有的多索引API支持以下查询参数

参数 是否必填 类型 默认值 说明
ignore_unavailable 可选 boolean false 如果为true,则响应中不包括缺失或闭合的索引
allow_no_indices 可选 boolean false 如果为true,则请求中不存在的索引时不会返回错误
expand_wildcards 可选 string 控制通配符表达式可以扩展到哪种索引。当用逗号分隔时,接受多个值,如“open”、“hidden”。有效值为:allopenclosedhiddennone
ignore_throttled 可选 boolean false 某些API使用

2、索引名称支持日期运算

索引按日期分片之后可以提高查询性能,例如你需要搜索每日错误日志,那么你可以通过索引名称进行日期限定。技术所有的API都支持日期运算,日期索引名称格式如下:

<static_name{date_math_expr{date_format|time_zone}}>

参数解析

参数 说明
static_name 任意的索引名称
date_math_expr 动态的日期表达式
date_format 日期格式化,默认yyyy.MM.dd
time_zone 时区,默认utc

举例:查询当天索引数据

#<service-order-{now/d{yyyy-MM-dd}}>
#进行urlencode之后 变成%3cservice-order-%7bnow%2fd%7byyyy-MM-dd%7d%7d%3e
GET /%3cservice-order-%7bnow%2fd%7byyyy-MM-dd%7d%7d%3e/_search
{"query":{"query_string": {"fields": ["name"],"query": "Yao"}}
}

当然你可以自己构建更为复杂的查询,这边我就贴一个简单的例子,剩下的自己动手实验下。

3、Cron表达式

不知道这个定时器有什么用
表达式格式如下,使用的规范是 Quartz cron expressions,没错就是你熟悉的quarz

<seconds> <minutes> <hours> <day_of_month> <month> <day_of_week> [year]

既然大家都熟悉不做过多阐述,我还没用到这个功能。

4、公共选项

  • Pretty Results 使用pretty格式美化返回结果,使用?pretty=true
  • Human readable output 人类可读输出,例如时间,单位等。使用?human=true;
  • date Math 日期运算
  • Response Filtering 响应过滤器,使用?filter_path=,支持通配符,或者精确指定,即将返回结果进行过滤,用以精简返回。
  • Flat Settings 扁平化setting,GET customer/_settings?flat_settings=true 返回结果将变成如下格式,你也可以不加后缀比较下看看
{"customer" : {"settings" : {"index.creation_date" : "1590150410219","index.number_of_replicas" : "1","index.number_of_shards" : "1","index.provided_name" : "customer","index.uuid" : "zcyLZYomRvWTyvq2RuzhvA","index.version.created" : "7050199"}}
}
  • Parameters Rest参数遵循下划线大小写约定
  • Boolean Values 所有REST API参数支持字符串的boolean值作为真正的boolean值。
  • Number Values RestApi支持数字类型使用字符串表示
  • Time units 时间单位表 d/天,h/小时,m/分钟,s/秒,ms/毫秒,micros/微秒,nanos/纳秒
  • Byte size units 字节大小单位b/Byteskb/Kilobytesmb/Megabytesgb/Gigabytestb/TerabytespbPetabytes
  • 其他单位不多介绍,国际标准
  • Fuzziness 模糊性 AUTO:[low],[high]
  • Enabling stack traces 启动堆栈跟踪 ?error_trace=true 可以获取详细报错信息
  • Request body in query string
  • Content-Type Requirements

5、基于URL访问控制

基于url访问控制可以提高访问安全性,但是对于将索引通过body传入的情况,url无法进行访问控制,你可以通过在elasticsearch.yml中设置rest.action.multi.allow_explicit_index: false来拒绝使用body指定索引。

Elasticsearch APIs解析(一、API规范及约定)相关推荐

  1. RESTful API 规范

    REST 和 RESTfulAPI REST是REpresentational State Transfer表述性状态转移 的首字母缩写,是一种基于超媒体构建分布式系统的架构风格.与其他架构风格一样, ...

  2. php restful规范,RESTFul API规范 详细指南

    RESTFul规范 RESTFul是一种HTTP API接口规范,只要满足的RESTFul规范,即可称为RESTFul API. 既然是接口,我们先来了解一下,他和传统的API接口有何不同吧. 本文以 ...

  3. java 解析gson_使用Java和Google GSON解析ESPN API

    java 解析gson 在我的第一篇文章中,我将解释如何解析ESPN API. 可以在http://developer.espn.com/docs上找到API文档. 首先,您需要请求一个API密钥,然 ...

  4. 使用Java和Google GSON解析ESPN API

    在我的第一篇文章中,我将解释如何解析ESPN API. 可以在http://developer.espn.com/docs上找到API文档. 首先,您需要请求一个API密钥,然后可以开始查询REST ...

  5. 深度解析 | K8S API Server之请求处理

    对Kubernetes API 请求流程进行解析.后续还将对API Server的存储和扩展点等主题进行介绍.本篇是Kubernetes API Server系列第三篇. 请求和处理流程    在介绍 ...

  6. REST API规范

    REST API规范是什么 REST 是Roy Fielding博士在2000年他的博士论文中提出的一种软件架构模式的风格.是一种设计风格,不是标准,没有谁强制性要求,只是提供了一组设计原则和约束条件 ...

  7. ElasticSearch入门-搜索(java api)

    ElasticSearch入门-搜索(java api) package com.qlyd.searchhelper;import java.util.Map;import net.sf.json.J ...

  8. IT隐匿者官方解析系统API接口文档

    IT隐匿者官方解析系统API接口文档 简要描述: 需要到平台注册自己账号,然后开通会员权限,就有自己的api接口 平台地址:IT隐匿者解析系统 接口只能用于自己的产品,禁止打包外售或与其他人共用,发现 ...

  9. 天鸟技术中台-建设过程-日常经验1:标准、规范、约定、极简、可读、单一职责、自动化

    1.标准.规范.约定.极简.可读 技术中台,以模块来划分,不同模块,代码总体一致. 因为,中台本来就是要解决类似问题. 不同模型,主要还是CRUD,第1阶段,只考虑not core非核心业务. 核心业 ...

最新文章

  1. 火星上的甲烷从哪里来,科学家用算法给出了答案
  2. 判断是否Ajax请求
  3. 编程之美之控制cpu线
  4. spring的IOC注解
  5. oo面向对象第一单元总结
  6. ios beta 下载_如何回滚到iOS 10(如果您使用的是iOS 11 Beta)
  7. linux 生成hash值命令,linux-从给定哈希计算base64编码哈希?
  8. Kafka JMX监控报错 Failed to get broker metrics for BrokerIdentity(128,192.168.2.128,9999,true,false,Map
  9. 从入门到进阶,这10本高分书籍,优秀数据分析师越早读完越好
  10. AcWing 875. 快速幂
  11. 华北五省计算机应用大赛2018,2019年华北五省(市、自治区)及港澳台大学生计算机应用大赛举行...
  12. 蓝牙音乐之AVRCP常用指令介绍
  13. Local-DPP论文阅读笔记
  14. c语言什么意思000094,Hello World 背后的真实故事
  15. CryEngine3SDK尝鲜
  16. OSChina 娱乐弹弹弹——程序猿的酒文化
  17. 基于微信小程序的自习室预约系统设计与实现-计算机毕业设计源码+LW文档
  18. php文件上传代码dsn,数据源名称无效-使用php、PDO和DSN连接到MySQL
  19. 蹉跎二十载,漫漫人生路
  20. [excel]如果去掉科学计数法,以及将正常的减号进行计算

热门文章

  1. 传输速率和传播速率的理解
  2. 世界6大主流操作系统回顾
  3. 腾讯云TCP架构高级工程师认证考试大纲、考题下载及说明
  4. shell 分割文本_shell教程(2):积木游戏之认识积木--重要的系统命令
  5. pytorch criterion踩坑小结
  6. 如何做好App性能测试
  7. P4147 玉蟾宫 题解
  8. Web前端设计与开发课程设计:简易淘宝网页设计
  9. 【转】专家:制造业将大批死亡 都怪马云
  10. 数据结构学习问题集结