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

相关文章

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

C/C++错误信息处理的常见方法及函数

《C/C++错误信息处理的常见方法及函数》C/C++是两种广泛使用的编程语言,特别是在系统编程、嵌入式开发以及高性能计算领域,:本文主要介绍C/C++错误信息处理的常见方法及函数,文中通过代码介绍... 目录前言1. errno 和 perror()示例:2. strerror()示例:3. perror(

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

java常见报错及解决方案总结

《java常见报错及解决方案总结》:本文主要介绍Java编程中常见错误类型及示例,包括语法错误、空指针异常、数组下标越界、类型转换异常、文件未找到异常、除以零异常、非法线程操作异常、方法未定义异常... 目录1. 语法错误 (Syntax Errors)示例 1:解决方案:2. 空指针异常 (NullPoi

C++常见容器获取头元素的方法大全

《C++常见容器获取头元素的方法大全》在C++编程中,容器是存储和管理数据集合的重要工具,不同的容器提供了不同的接口来访问和操作其中的元素,获取容器的头元素(即第一个元素)是常见的操作之一,本文将详细... 目录一、std::vector二、std::list三、std::deque四、std::forwa

MySQL常见的存储引擎和区别说明

《MySQL常见的存储引擎和区别说明》MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY、Archive、CSV和Blackhole,每种引擎有其特点和适用场景,选择存储引擎时需根... 目录mysql常见的存储引擎和区别说明1. InnoDB2. MyISAM3. MEMORY4. A

前端bug调试的方法技巧及常见错误

《前端bug调试的方法技巧及常见错误》:本文主要介绍编程中常见的报错和Bug,以及调试的重要性,调试的基本流程是通过缩小范围来定位问题,并给出了推测法、删除代码法、console调试和debugg... 目录调试基本流程调试方法排查bug的两大技巧如何看控制台报错前端常见错误取值调用报错资源引入错误解析错误

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo