热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

(11)elasticsearch常用查询,RESTAPI的基本约定

【1】多个资源请求(1.1)基本查多个索引您可以使用逗号分隔的列表对多个资源test1,test2,test3(1.2)通配符,like之类的模糊查询还可以使用通配符*,如:tes

【1】多个资源请求


(1.1)基本查多个索引

您可以使用逗号分隔的列表对多个资源

test1,test2,test3

(1.2)通配符,like 之类的模糊查询

还可以使用通配符 * ,如:

  test*或*test或te*t或*test*。

  您可以使用以下-字符排除目标:test*,-test3。


(1.3)别名引起的问题

索引别名在通配符表达式之后解析。这可能会导致针对排除的别名的请求。

  例如,如果test3是索引 abc 的别名,则该模式test*,-test3仍将定位到的索引test3

  为了避免这种情况,请排除别名的具体索引。如:test*,-abc


(1.4)多目标API的字符串参数

ignore_unavailable :(可选,布尔值)如果为true,则响应中不包含缺少或闭合的索引。默认为false

allow_no_indices:(可选,布尔值)如果true,请求并如果通配符表达式或者返回一个错误_all值仅检索丢失或封闭的索引。此参数还适用于指向别名缺失或封闭索引的索引别名。

expand_wildcards:(可选,字符串)控制通配符表达式可以扩展到的索引类型。如用逗号分隔,可以接受多个值open,hidden。有效值为:

all:展开以打开和关闭索引,包括隐藏索引。
open:仅展开以打开索引。
closed:仅扩展到封闭索引。
hidden:通配符的扩展将包括隐藏的索引。必须与之合并open,closed或两者兼而有之。
none:不接受通配符表达式。

 ignore_throttled :(可选,布尔值)如果为true,冻结时将忽略具体的索引,扩展的索引或别名索引。默认为true


【2】索引名称中对日期的数学支持


(2.1)作用

日期数学索引名称解析使您可以搜索一系列时间序列索引,而不必搜索所有时间序列索引并过滤结果或维护别名。

限制搜索索引的数量可以减少群集上的负载并提高执行性能。

例如,如果您要在日常日志中搜索错误,则可以使用日期数学名称模板将搜索范围限制为过去两天。

 

几乎所有具有index参数的API都在index参数值中支持日期数学。

日期数学索引名称采用以下形式:

参数释义:





















static_name


是名称的静态文本部分


date_math_expr


是动态日期数学表达式,可动态计算日期


date_format


是一种可选格式,应以这种格式呈现计算出的日期。默认为yyyy.MM.dd。格式应与Java时间https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html兼容


time_zone


是可选的时区。默认为utc


请注意空格中小写与大写字母的用法date_format

例如:mm表示小时,而MM表示月份。

类似地,结合表示范围内hh的小时,而表示24小时范围内的小时。1-12AM/PMHH0-23

日期数学表达式与语言环境无关。因此,除了公历以外,无法使用其他日历。

 

您必须将日期数学索引名称表达式括在尖括号内,并且所有特殊字符均应进行URI编码。例如:

# PUT /
PUT /%3Cmy-index-%7Bnow%2Fd%7D%3E

 


(2.2)日期数学字符的百分比编码

用于日期舍入的特殊字符必须使用URI编码,如下所示

  









































<


%3C


>


%3E


/


%2F


{


%7B


}


%7D


|


%7C


+


%2B


:


%3A


,


%2C


 

 

以下示例显示了不同形式的日期数学索引名称,以及在当前时间为2024年3月22日正午utc时,它们解析为的最终索引名称。




























表达解析为


logstash-2024.03.22



logstash-2024.03.01



logstash-2024.03



logstash-2024.02



logstash-2024.03.23


要使用字符{ and 在索引名称模板的静态部分中,请使用反斜杠对其进行转义\,例如:

解析为 elastic{ON}-2024.03.01

(2.3)案例

以下示例显示了一个搜索请求,该搜索请求在过去三天中搜索Logstash索引,假设索引使用默认的Logstash索引名称格式logstash-yyyy.MM.dd

# GET /,,/_search
GET /%3Clogstash-%7Bnow%2Fd-2d%7D%3E%2C%3Clogstash-%7Bnow%2Fd-1d%7D%3E%2C%3Clogstash-%7Bnow%2Fd%7D%3E/_search
{
"query" : {
"match": {
"test": "data"
}
}
}

 



推荐阅读
  • Python初学者入门指南:从基础到实践的全面学习路径本文为Python初学者提供了一条从基础到实践的全面学习路径。特别介绍了Python字典(Dictionary)中的`items()`方法,该方法用于返回字典中所有键值对的视图对象,便于在循环和其他操作中使用。通过实例讲解,帮助读者更好地理解和应用这一重要功能。 ... [详细]
  • 在Java应用程序中调用`response.getStatus()`方法时遇到了`NoSuchMethodError`异常,经过分析,初步判断为依赖冲突问题。通过检查项目依赖树发现,当前项目版本与某些库的版本不兼容,导致该方法无法被正确识别。建议通过更新相关依赖版本或使用依赖管理工具(如Maven或Gradle)来解决此问题,确保所有依赖项版本一致且兼容。 ... [详细]
  • 本文作为“实现简易版Spring系列”的第五篇,继前文深入探讨了Spring框架的核心技术之一——控制反转(IoC)之后,将重点转向另一个关键技术——面向切面编程(AOP)。对于使用Spring框架进行开发的开发者来说,AOP是一个不可或缺的概念。了解AOP的背景及其基本原理,对于掌握这一技术至关重要。本文将通过具体示例,详细解析AOP的实现机制,帮助读者更好地理解和应用这一技术。 ... [详细]
  • Spring框架入门指南:专为新手打造的详细学习笔记
    Spring框架是Java Web开发中广泛应用的轻量级应用框架,以其卓越的功能和出色的性能赢得了广大开发者的青睐。本文为初学者提供了详尽的学习指南,涵盖基础概念、核心组件及实际应用案例,帮助新手快速掌握Spring框架的核心技术与实践技巧。 ... [详细]
  • Java 9 中 SafeVarargs 注释的使用与示例解析 ... [详细]
  • 探讨 `org.openide.windows.TopComponent.componentOpened()` 方法的应用及其代码实例分析 ... [详细]
  • JVM参数设置与命令行工具详解
    JVM参数配置与命令行工具的深入解析旨在优化系统性能,通过合理设置JVM参数,确保在高吞吐量的前提下,有效减少垃圾回收(GC)的频率,进而降低系统停顿时间,提升服务的稳定性和响应速度。此外,本文还将详细介绍常用的JVM命令行工具,帮助开发者更好地监控和调优JVM运行状态。 ... [详细]
  • HTTP协议作为互联网通信的基础,其重要性不言而喻。相比JDK自带的URLConnection,HttpClient不仅提升了易用性和灵活性,还在性能、稳定性和安全性方面进行了显著优化。本文将深入解析HttpClient的使用方法与技巧,帮助开发者更好地掌握这一强大的工具。 ... [详细]
  • Java队列机制深度解析与应用指南
    Java队列机制在并发编程中扮演着重要角色。本文深入解析了Java队列的各种实现类及其应用场景,包括`LinkedList`、`ArrayBlockingQueue`和`PriorityQueue`等,并探讨了它们在高并发环境下的性能表现和适用场景。通过详细分析这些队列的内部机制和使用技巧,帮助开发者更好地理解和应用Java队列,提升系统的设计和架构能力。 ... [详细]
  • 深入解析 javax.faces.view.ViewDeclarationLanguageWrapper.getWrapped() 方法及其应用实例 ... [详细]
  • 如何在datetimebox中进行赋值与取值操作
    在 datetimebox 中进行赋值和取值操作时,可以通过以下方法实现:使用 `$('#j_dateStart').datebox('setValue', '指定日期')` 进行赋值,而通过 `$('#j_dateStart').datebox('getValue')` 获取当前选中的日期值。若需要清空日期值,可以使用 `$('#j_dateStart').datebox('clear')` 方法。这些操作能够确保日期控件的准确性和灵活性,适用于各种前端应用场景。 ... [详细]
  • 开发心得:深入探讨Servlet、Dubbo与MyBatis中的责任链模式应用
    开发心得:深入探讨Servlet、Dubbo与MyBatis中的责任链模式应用 ... [详细]
  • 结语 | 《探索二进制世界:软件安全与逆向分析》读书笔记:深入理解二进制代码的逆向工程方法
    结语 | 《探索二进制世界:软件安全与逆向分析》读书笔记:深入理解二进制代码的逆向工程方法 ... [详细]
  • 如何在 Java LinkedHashMap 中高效地提取首个或末尾的键值对? ... [详细]
  • 本文深入探讨了 C# 中 `SqlCommand` 和 `SqlDataAdapter` 的核心差异及其应用场景。`SqlCommand` 主要用于执行单一的 SQL 命令,并通过 `DataReader` 获取结果,具有较高的执行效率,但灵活性较低。相比之下,`SqlDataAdapter` 则适用于复杂的数据操作,通过 `DataSet` 提供了更多的数据处理功能,如数据填充、更新和批量操作,更适合需要频繁数据交互的场景。 ... [详细]
author-avatar
william浩浩_597
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有