python elasticsearch_dsl PIT Point in time API 查询

embedded/2024/12/21 17:51:02/

默认情况下,搜索请求针对目标索引的最新可见数据(称为时间点)执行。elasticsearchpit(时间点)是一种轻量级视图,可以查看数据在启动时的状态。在某些情况下,最好使用同一时间点执行多个搜索请求。例如,如果在search_after请求之间发生刷新,那么这些请求的结果可能不一致,因为在搜索之间发生的更改仅在最近的时间点可见。

python">from elasticsearch_dsl import Search
from elasticsearch_dsl import connections
from elasticsearch_dsl import Q as esQ
conn = connections.create_connection(hosts=['192.168.214.133'],port=31920,http_auth="elastic:test")response = conn.open_point_in_time(index="test",keep_alive="1m")
# 获取到id
pit_id = response['id']
search = Search(using=conn)
search.query=esQ("match_all")
search = search.extra(pit={"id": pit_id, "keep_alive": "1m"})
search = search.sort('-_shard_doc')
search = search.extra(size=1)def loop_value(search):try:print(search.to_dict())response = search.execute()value = response['hits']['hits'][-1]['sort']print(response['hits']['hits'])if value[0]>0:search = search.extra(search_after=value)loop_value(search)except Exception as e:print(str(e))
loop_value(search)
conn.close_point_in_time(body={"id": pit_id})

对应的dsl

POST /test/_pit?keep_alive=10mDELETE /_pit
{"id":"gLuKBAEFZWxsaXMWVUpRaEYxY2VTZVd2eFlYZWZLbEU3QQAWOGxDOW1rQzZTMTJJVVJubDJxM196dwAAAAAAAAAN8RZpUTdEYlBaclJ0ZThIb0YxTWQ3d0tRAAEWVUpRaEYxY2VTZVd2eFlYZWZLbEU3QQAA"
}GET _search
{"query": {"match_all": {}},"sort": [{"_shard_doc": {"order": "desc"}}],"pit": {"id": "gLuKBAEFZWxsaXMWVUpRaEYxY2VTZVd2eFlYZWZLbEU3QQAWOGxDOW1rQzZTMTJJVVJubDJxM196dwAAAAAAAAAZxBZpUTdEYlBaclJ0ZThIb0YxTWQ3d0tRAAEWVUpRaEYxY2VTZVd2eFlYZWZLbEU3QQAA","keep_alive": "1m"}
}

https://www.elastic.co/guide/en/elasticsearch/reference/current/point-in-time-api.html


http://www.ppmy.cn/embedded/147587.html

相关文章

Excel技巧:使用PowerQuery批量提取文件名

前面给大家分享了简单的excel提取文件名方法,今天继续分享,进阶版excel文件批量提取文件名的方法。 点击excel工具栏中的【数据】功能,点击获取数据 – 来自文件 – 从文件夹 然后找到需要提取文件名的文件夹,点击打开&#xff0…

正则表达式入门教程

正则表达式入门教程 1. 引言 正则表达式(Regular Expression,简称Regex)是一种用于处理字符串的强大工具,它允许用户通过特定的模式(pattern)来搜索、匹配、查找和替换文本中的数据。正则表达式在文本处理、数据验证、数据提取等领域有着广泛的应用。本教程将带你了解正…

视频及JSON数据的导出并压缩

npm下载安装 jszip 和 file-saver 这两个库来实现文件的压缩和保存功能: npm install jszip npm install file-saver 导入依赖库: import JSZip from jszip; import { saveAs } from file-saver; 方法实现: batchDownload() {const zip…

硬件之DCDC开关电源

一、BUCK降压原理(重点) 1、这里其实就是开关S不停的通断,形成PWM波 2、L电感,电容C和续流二极管之间形成回路,这样就可以输出想要的电压了 假设PWM的电压为15V,经过续流回路之后就会输出5V 二、选型 1、…

HTML5技术深度解析与实战应用

引言 HTML5作为新一代的HTML标准,带来了许多新特性和改进,这些变化不仅提升了网页的表现力,也为开发者提供了更多的工具和API来构建丰富、互动的网络应用。本文将深入解析HTML5的关键特性,并提供实战应用示例,帮助开发…

Node的学习以及学习通过Node书写接口并简单操作数据库

Node的学习 Node的基础上述是关于Node的一些基础,总结的还行; 利用Node书写接口并操作数据库 1. 初始化项目 创建新的项目文件夹,并初始化 package.json mkdir my-backend cd my-backend npm init -y2. 安装必要的依赖 安装Express.js&…

使用 esrally race 测试 Elasticsearch 性能:实践指南

在 Elasticsearch 性能优化和容量规划中,使用 esrally 进行基准测试是官方推荐的方式。通过 esrally race 命令,您可以针对不同的数据集与挑战类型,对 Elasticsearch 集群进行精确的性能评估。本文将简要介绍常用的数据集与挑战类型&#xff…

【mac 终端美化】oh my zsh

快捷的mac终端美化方法。 以下是效果图,比较朴素,但是相比默认方案会好看一些,也能明显查看输入的命令,不会和输出混在一起。 下载主题 访问网址:https://iterm2colorschemes.com/,下载网页的压缩包并解…