Elasticsearch:ES|QL 同步及 async 查询操作

目录

ES|QL query API

请求

前提条件

查询参数

请求正文

响应正文

ES|Q async query API

请求

前提条件

路径参数

请求正文

响应正文

ES|QL async query get API

请求

前提条件

路径参数

查询参数

响应正文

ES|QL async query delete API

请求

前提条件

路径参数


Elasticsearch 查询语言 (ES|QL) 提供了一种强大的方法来过滤、转换和分析存储在 Elasticsearch 中以及将来在其他运行时中的数据。有关 ES|QL 和相关教程的概述,请参阅 ES|QL。在今天的文章中,我们将介绍 ES|QL 的同步及异步操作。

ES|QL query API

和下面的异步请求相对应,以示区别,这个请求也称作为 ES|QL 的同步请求。

例子:

POST /_query
{"query": """FROM library| EVAL year = DATE_TRUNC(1 YEARS, release_date)| STATS MAX(page_count) BY year| SORT year| LIMIT 5"""
}

返回 ES|QL(Elasticsearch 查询语言)查询的搜索结果。更多例子请在文章 “Elasticsearch:ES|QL 查询展示” 中进行查看。

请求

POST _query

前提条件

  • 如果启用了 Elasticsearch 安全功能,你必须具有所搜索的数据流、索引或别名的读取(read)索引权限。

查询参数

条目描述
delimiter(可选,字符串)CSV 结果的分隔符。默认为 ,。针对 CSV 响应,API 仅支持此参数。
drop_null_columns(可选,布尔值)是否应从结果的列和值部分中删除完全为空的列?默认为 false。如果为 true,则响应将包含一个名为 all_columns 的额外部分,其中包含所有列的名称。
format

(可选,字符串)响应的格式。有关有效值,请参阅响应格式。

你还可以使用 Accept HTTP 标头指定格式。如果您同时指定此参数和 Accept HTTP 标头,则此参数优先。

请求正文

条目描述
columnar(可选,布尔值)如果为 true,则以列格式返回结果。默认为 false。API 仅支持 CBOR、JSON、SMILE 和 YAML 响应的此参数。请参阅列式结果。
locale(可选,字符串)返回按照语言环境惯例格式化的结果(尤其是日期)。有关语法,请参阅返回本地化结果。
params(可选,数组)查询中的参数值。有关语法,请参阅将参数传递给查询。
query(必需,字符串)要运行的 ES|QL 查询。有关语法,请参阅语法参考。

响应正文

条目    描述

columns

(对象数组)值中返回的每一列的列名和类型。每个对象都是一列。
all_columns(对象数组)每个查询列的列名和类型。每个对象都是一个单独的列。仅当 drop_null_columns 与请求一起发送时才会返回。
rows(数组的数组)搜索结果的值。

ES|Q async query API

用于返回异步 ES|QL 查询

异步查询 API 允许你异步执行查询请求、监控其进度并在结果可用时检索结果。

该 API 接受与同步查询 API (也就是上面描述的 ES|QL query API)相同的参数和请求正文,以及如下所述的其他异步相关属性。

POST /_query/async
{"query": """FROM library| EVAL year = DATE_TRUNC(1 YEARS, release_date)| STATS MAX(page_count) BY year| SORT year| LIMIT 5""","wait_for_completion_timeout": "2s"
}

如果在给定的超时期限(本例中为 2 秒)内未获得结果,则不会返回任何结果,而是返回包含以下内容的响应:

  • 查询 ID
  • is_running 值为 true,表示查询正在进行中

查询将继续在后台运行,而不会阻止其他请求。

{"id": "FmNJRUZ1YWZCU3dHY1BIOUhaenVSRkEaaXFlZ3h4c1RTWFNocDdnY2FSaERnUTozNDE=","is_running": true
}

否则,如果响应的 is_running 值为 false,则异步查询已完成并返回结果。

{"is_running": false,"columns": ...
}

请求

POST /_query/async

前提条件

  • 如果启用了 Elasticsearch 安全功能,你必须具有所搜索的数据流、索引或别名的读取(read)索引权限。

路径参数

该 API 接受与同步查询 API 相同的参数。和上面描述 ES|QL query API 中描述的一样。

请求正文

该 API 接受与同步查询 API 相同的请求主体,以及以下参数:

条目描述
wait_for_completion_timeout

(可选,时间值)等待请求完成的超时时长。默认为 1 秒,表示请求等待 1 秒以获取查询结果。

如果查询在此期间完成,则将返回结果。否则,将返回查询 id,稍后可用于检索结果。

如果请求在此期间未完成,则返回查询 id (如下)。

keep_on_completion

(可选,布尔值)如果为 true,则查询及其结果将存储在集群中。

如果为 false,则仅当请求在 wait_for_completion_timeout 参数设置的时间段内未完成时,查询及其结果才会存储在集群中。默认为 false。

keep_alive

(可选,时间值)查询及其结果在集群中存储的期限。默认为 5d(五天)。

当此期限到期时,查询及其结果将被删除,即使查询仍在进行中。

如果 keep_on_completion 参数为 false,Elasticsearch 仅存储在 wait_for_completion_timeout 参数设置的期限内未完成的异步查询,而不管此值是多少。

响应正文

该 API 返回与同步查询 API 相同的响应主体,以及以下属性:

条目描述
id

(字符串)查询的标识符。

仅当满足以下条件之一时才提供此查询 id:

  • 查询请求在 wait_for_completion_timeout 参数的超时期限内未返回完整结果。
  • 查询请求的 keep_on_completion 参数为 true。

你可以将此 ID 与 ES|QL 异步查询获取 API 一起使用,以获取查询的当前状态和可用结果。

is_running(布尔值)如果为真,则查询请求仍在执行。

ES|QL async query get API

返回 ES|QL 异步查询或存储结果的当前状态和可用结果。

GET /_query/async/FkpMRkJGS1gzVDRlM3g4ZzMyRGlLbkEaTXlJZHdNT09TU2VTZVBoNDM3cFZMUToxMDM=

请求

GET /_query/async/<query_id>

前提条件

  • 如果启用了 Elasticsearch 安全功能,则只有首先提交 ES|QL 查询的用户才能使用此 API 检索结果。

路径参数

条目描述
<query_id>

(必需,字符串)查询的标识符。

对于未在等待时间内完成的查询,ES|QL 异步查询 API 的响应中会提供查询 id。如果请求的 keep_on_completion 参数为 true,也会提供查询 ID。

查询参数

条目描述
wait_for_completion_timeout

(可选,时间值)等待请求完成的超时时长。默认为无超时,表示请求等待完整的查询结果。

如果指定此参数并且请求在此期间完成,则返回完整的查询结果。

如果请求在此期间未完成,则响应将返回 is_running 值 true 且无结果。

响应正文

ES|QL 异步查询获取 API 返回与 ES|QL 查询 API 相同的响应主体。请参阅 ES|QL query API 的响应主体参数。

ES|QL async query delete API

ES|QL 异步查询删除 API 用于通过 ID 手动删除异步查询。如果查询仍在运行,则查询将被取消。否则,将删除存储的结果。

DELETE /query/async/FkpMRkJGS1gzVDRlM3g4ZzMyRGlLbkEaTXlJZHdNT09TU2VTZVBoNDM3cFZMUToxMDM=

请求

DELETE /_query/async/<query_id>

前提条件

  • 如果启用了 Elasticsearch 安全功能,则只有以下用户可以使用此 API 删除查询:
    • 提交原始查询请求的经过身份验证的用户
    • 具有 cancel_task 集群权限的用户

路径参数

条目描述
<query_id>

(必需,字符串)要删除的查询的标识符。

对于未在等待时间内完成的查询,ES|QL 异步查询 API 的响应中会提供查询  id。如果请求的 keep_on_completion 参数为 true,也会提供查询 ID。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/852994.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Rust 实战丨并发构建倒排索引

引言 继上篇 Rust 实战丨倒排索引&#xff0c;本篇我们将参考《Rust 程序设计&#xff08;第二版&#xff09;》中并发编程篇章来实现高并发构建倒排索引。 本篇主要分为以下几个部分&#xff1a; 功能展示&#xff1a;展示我们最终实现的 2 个工具的效果&#xff08;构建索…

python面试题3:什么是装饰器decorator(难度--简单)

文章目录 题目回答 题目 什么是装饰器&#xff08;decorator&#xff09;&#xff1f;&#xff08;常考题&#xff09; 回答 装饰器是一个高级功能&#xff0c;允许增加&#xff0c;修改函数&#xff0c;类&#xff0c;方法的行为。允许将现有函数传递给装饰器&#xff0c;该…

mac 本地启动rocketmq

Mac 本地起rocketmq 官网下载&#xff1a;RocketMq官网下载地址 下载后解压 如果电脑配置不高或者不希望rocketmq占用太大内存的&#xff0c;修改配置/bin/runbroker.sh JAVA_OPT"${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m"-Xmx4g 初始堆大小 4g -Xms4g 最大…

Python武器库开发-武器库篇之SMB服务暴力破解(五十五)

Python武器库开发-武器库篇之SMB服务暴力破解(五十五) SMB服务&#xff08;Server Message Block&#xff09;是一种用于文件共享、打印机共享和其他资源共享的网络协议。它最初由IBM开发&#xff0c;后来被微软广泛采用。 SMB服务允许多台计算机在网络上共享文件和资源&…

笔记本硬盘对拷:升级硬盘的好方法!

如今电子产品更新换代的速度不断加快&#xff0c;笔记本电脑的配置也日新月异。几年前购买的笔记本硬盘容量350G曾经令你感到相当满意。但时至今日&#xff0c;这样的容量是否已经显得有些落后&#xff1f;如果你想要升级硬盘&#xff0c;笔记本硬盘对拷是一个很好的选择。 需要…

Radis初阶 Radis基本命令与在Springboot中访问Radis

阿里网盘链接 文章目录 初始NoSQL数据库对比MySQL数据库从结构方面&#xff1a;从关系方面&#xff1a;从查询方式&#xff1a;从事物方面&#xff1a; Redis入门Redis数据结构访问Radis通用命令&#xff08;tab键&#xff1a;自动补全&#xff09;KEYSDELEXISTSEXPIRETTL Str…

第63集《摄大乘论》

《摄大乘论》&#xff0c;和尚尼慈悲、诸位法师、诸位居士&#xff0c;阿弥陀佛&#xff01;(阿弥陀佛&#xff01;)请大家打开《讲义》第二一一页&#xff0c;庚五、摄持。 我们这一大科讲到佛陀法身的功德&#xff0c;这当中有十门分别&#xff0c;这个地方是第五科。佛陀的…

Liquibase(Oracle SQLcl集成版)简明示例

本文使用的是Oracle SQLcl中集成的Liquibase&#xff0c;而非开源版Liquibase。 Liquibase的快速入门可以参见Liquibase Core Concepts。需要了解一下概念&#xff1a; Change log&#xff1a;基于文本的更改日志文件按顺序列出对数据库所做的所有更改Change set&#xff1a;…

LabVIEW开发中的常见通讯协议详解

介绍LabVIEW开发中常见的通讯协议&#xff0c;包括RS-232、RS-485、I2C、SPI、CAN、Ethernet、Modbus和GPIB等。通过对各协议的具体内容、特点、使用范围及注意事项进行全面解析&#xff0c;帮助开发者选择合适的通讯协议&#xff0c;提高系统性能和可靠性。 1. RS-232 内容&a…

maven工程结构搭建

父工程pom <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.…

Python基础教程(十五):面向对象编程

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

DataFrames相关介绍文件读取

目录 1.初识DataFrame 2.DataFrame的构造函数 3.数据框的轴 4.CSV文件读取 5.Excel文件读取 1.初识DataFrame &#xff08;1&#xff09;昨天&#xff0c;我们学习了Series。而Pandas的另一种数据类型&#xff1a;DataFrame&#xff0c;在许多特性上和Series有相似之处。 …

Spring应用如何打印access日志和out日志(用于分析请求总共在服务耗费多长时间)

我们经常会被问到这样一个问题。你接口返回的好慢呀&#xff0c;能不能提升一下接口响应时间啊&#xff1f;这个时候我们就需要去分析&#xff0c;为什么慢&#xff0c;慢在哪。而这首先应该做的就是确定接口返回时间过长确实是在服务内消耗的时间。而不是我们将请求发给网关或…

【JVM】垃圾回收机制中,对象进入老年代的触发条件

在 Java 的垃圾回收机制中&#xff0c;对象进入老年代&#xff08;Old Generation&#xff09;的条件取决于多种因素。主要触发条件如下&#xff1a; 对象存活时间较长&#xff1a; 当一个对象在新生代&#xff08;Young Generation&#xff09;中经历了多次垃圾回收依然存活&a…

字符串及其应用

内容 编写程序实现字符串的基本运算&#xff1a; (1) 求串的长度、两串连接、串比较、子串匹配&#xff1b; (2) 用库函数直接实现上一步的字符申操作 完整代码 #include <iostream> #include <stdio.h> #include<string.h> using namespace std; #define M…

#20 制作你的第一个Stable Diffusion项目:从零到一的实践指南

文章目录 前言1. 环境配置1.1 安装必要的软件1.2 下载模型 2. 生成图像2.1 编写脚本2.2 设置参数2.3 生成图像 3. 优化和调整3.1 调整参数3.2 使用高级技巧 4. 分享和展示4.1 分享到社区4.2 创建个人项目集 结论 前言 Stable Diffusion作为一种先进的AI图像生成技术&#xff0…

LNMP网站架构

一、安装nginx服务 1、关闭防火墙和核心防护 systemctl stop firewalld systemctl disable firewalld setenforce 0 2、安装依赖包 yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c make 3、创建运行用户 useradd -M -s /sbin/nologin nginx 4、编译安装…

AI办公自动化:批量在多个Word文档中插入对应图片

工作任务&#xff1a;文件夹中有多个word文档和word文档名称一致的图片&#xff0c;要把这些图片都插入到word文档中 在chatpgt中输入提示词&#xff1a; 你是一个Python编程专家&#xff0c;写一个Python脚本&#xff0c;具体步骤如下&#xff1a; 打开文件夹&#xff1a;F:…

CSS从入门到精通——背景样式

目录 背景颜色 任务描述 相关知识 背景色 编程要求 背景图片 任务描述 相关知识 背景图片 设置背景图片 平铺背景图像 任务要求 背景定位与背景关联 任务描述 相关知识 背景定位 背景关联 简写背景 编程要求 背景颜色 任务描述 本关任务&#xff1a;在本关…

LAMP部署及应用

在Web开发和应用程序部署中&#xff0c;LAMP&#xff08;Linux、Apache、MySQL/MariaDB、PHP/Python/Perl&#xff09;环境是一个经典的选择。本文将详细介绍如何在Linux系统上部署和配置LAMP环境&#xff0c;并展示一个简单的应用示例。 --- 目录 1. 简介 2. 准备工作 3. 步…