API Conventions【Common optionsedit】常见选项

2024-08-27 16:08

本文主要是介绍API Conventions【Common optionsedit】常见选项,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

环境

elasticsearch 6.2

前言

翻译
原文地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/common-options.html

Date Math

接收格式化日期值的大多数参数可以通过 – 例如: 在range queries 中范围查询的gtlt
或者 在daterange aggregations中的fromto – 来理解date math

表达式要以一个anchor date基准日期)开始,其可以是now,或者是一个以||结尾的日期字符串。
此基准日期可以选择性地后跟一个或者多个数学表达式。

  • +1h - 加一个小时
  • -1h - 减一个小时
  • /h - 向下舍入到最近的一天

所支持的 time units ( 时间单位 )不同于持续时间支持的 时间单位。所支持的单位是:

符号含义
y
M
w
d
h12进制的小时
H24进制的小时
m分钟
s

假定now2001-01-01 12:00:00,一些例如如下:

表达式描述
now+1h在毫秒上now加一个小时。解析为:2001-01-01 13:00:00
now-1h在毫秒上now减一个小时。解析为:2001-01-01 11:00:00
now-1h/d在毫秒上now减一个小时,向下舍入到UTC 00:00。解析为:2001-01-01 00:00:00
2001.02.01||+1M/d在毫秒上2001-02-01加一个月。解析为:2001-03-01 00:00:00

Response Filtering 响应过滤

所有的REST APIs都接收filter_path参数,该参数用于减少elasticsearch返回的响应。该参数采用用点符号表示的以逗号分隔的过滤器列表:

GET /_search?q=elasticsearch&filter_path=took,hits.hits._id,hits.hits._score

响应:

{"took" : 3,"hits" : {"hits" : [{"_id" : "0","_score" : 1.6375021}]}
}

它也支持*通配符来匹配任意字段或者部分字段名:

GET /_cluster/state?filter_path=metadata.indices.*.stat*

响应:

{"metadata" : {"indices" : {"twitter": {"state": "open"}}}
}

并且 ** 通配符可以用于包括不知道确切路径的字段。例如,我们可以返回带有此请求的每个 segment ( 段 ) 的 Lucene 版本:

GET /_cluster/state?filter_path=routing_table.indices.**.state

响应:

{"routing_table": {"indices": {"twitter": {"shards": {"0": [{"state": "STARTED"}, {"state": "UNASSIGNED"}],"1": [{"state": "STARTED"}, {"state": "UNASSIGNED"}],"2": [{"state": "STARTED"}, {"state": "UNASSIGNED"}],"3": [{"state": "STARTED"}, {"state": "UNASSIGNED"}],"4": [{"state": "STARTED"}, {"state": "UNASSIGNED"}] }}}}
}

也可以通过前缀过滤字符-来排除一个或者多个字段:

GET /_count?filter_path=-_shards

响应:

{"count" : 5
}

为了更多的控制,包含过滤和排除过滤可以在同一个表达式中联合使用。
在这种情况下,排除过滤器将会被首先使用,接着结果又会被包含过滤器再过滤一遍。

GET /_cluster/state?filter_path=metadata.indices.*.state,-metadata.indices.logstash-*

响应:

{"metadata" : {"indices" : {"index-1" : {"state" : "open"},"index-2" : {"state" : "open"},"index-3" : {"state" : "open"}}}
}

注意,elasticsearch有时会直接返回字段的原始值,想_source字段。
如果你想要过滤_source字段,你应该考虑将已有的_source参数和filter_path参数组合起来:

POST /library/book?refresh
{"title": "Book #1", "rating": 200.1}
POST /library/book?refresh
{"title": "Book #2", "rating": 1.7}
POST /library/book?refresh
{"title": "Book #3", "rating": 0.1}
GET /_search?filter_path=hits.hits._source&_source=title&sort=rating:desc

结果:

{"hits" : {"hits" : [ {"_source":{"title":"Book #1"}}, {"_source":{"title":"Book #2"}}, {"_source":{"title":"Book #3"}} ]}
}

Flat Settings 平面设置

flat_settings 标志影响设置列表的呈现。当 flat_settings 标志为 true 时,设置以平面格式返回:

GET twitter/_settings?flat_settings=true

返回:

{"twitter" : {"settings": {"index.number_of_replicas": "1","index.number_of_shards": "1","index.creation_date": "1474389951325","index.uuid": "n6gzFZTgS664GUfx0Xrpjw","index.version.created": ...,"index.provided_name" : "twitter"}}
}

flat_settings标志设置为false,设置将会返回以人更容易阅读的结构化格式:

GET twitter/_settings?flat_settings=false

返回:

{"twitter" : {"settings" : {"index" : {"number_of_replicas": "1","number_of_shards": "1","creation_date": "1474389951325","uuid": "n6gzFZTgS664GUfx0Xrpjw","version": {"created": ... },"provided_name" : "twitter"}}}
}

flat_settings 默认为false

Parameters

Rest 参数(当使用HTTP时,映射到HTTP URL参数)遵循使用下划线的惯例。

Boolean Values

所有的REST API参数支持提供布尔false作为假的值,true作为真的值。所有的其他值,都视为错误。

这篇关于API Conventions【Common optionsedit】常见选项的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1112147

相关文章

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

MySQL CTE (Common Table Expressions)示例全解析

《MySQLCTE(CommonTableExpressions)示例全解析》MySQL8.0引入CTE,支持递归查询,可创建临时命名结果集,提升复杂查询的可读性与维护性,适用于层次结构数据处... 目录基本语法CTE 主要特点非递归 CTE简单 CTE 示例多 CTE 示例递归 CTE基本递归 CTE 结

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、

Java 方法重载Overload常见误区及注意事项

《Java方法重载Overload常见误区及注意事项》Java方法重载允许同一类中同名方法通过参数类型、数量、顺序差异实现功能扩展,提升代码灵活性,核心条件为参数列表不同,不涉及返回类型、访问修饰符... 目录Java 方法重载(Overload)详解一、方法重载的核心条件二、构成方法重载的具体情况三、不构

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作