当前位置: 首页 > news >正文

Python Elasticsearch 客户端使用详解

Elasticsearch 是一个广泛使用的分布式搜索和分析引擎,而elasticsearch是其官方提供的 Python 客户端库。通过该库,开发者可以方便地与 Elasticsearch 集群进行交互,完成从集群状态监控到复杂查询的各类操作。本文将系统性地介绍如何使用 Python 操作 Elasticsearch,内容涵盖集群管理索引控制以及文档的增删改查高级查询功能。

一、安装与连接

首先,通过 pip 安装官方客户端:

pipinstallelasticsearch==8.14.0

在代码中初始化客户端:

fromelasticsearchimportElasticsearch,NotFoundError es=Elasticsearch('http://localhost:9200',basic_auth=("elastic","123456"),retry_on_timeout=True,max_retries=3)

二、集群操作

获取集群健康状态

集群健康状态反映当前数据分片的分配情况,是运维监控的重要指标:

health=es.cluster.health()print("集群状态:",health['status'])print("节点数量:",health['number_of_nodes'])print("未分配分片数:",health['unassigned_shards'])
集群状态: green 节点数量: 1 未分配分片数: 0

获取集群基本信息

info=es.info()print("Elasticsearch 版本:",info['version']['number'])print("集群名称:",info['cluster_name'])
Elasticsearch 版本: 8.14.0 集群名称: docker-cluster

三、索引操作

索引(Index)是 Elasticsearch 中存储文档的逻辑容器,类似于关系型数据库中的“表”。

判断索引是否存在

exists=es.indices.exists(index='my_index')print("索引存在?",exists)
索引存在? False

创建索引

创建索引时可指定分片数、副本数及字段映射(mapping):

mapping={"settings":{"number_of_shards":1,"number_of_replicas":0},"mappings":{"properties":{"title":{"type":"text"},"category":{"type":"keyword"},"price":{"type":"float"},"created_at":{"type":"date"}}}}es.indices.create(index='my_index',body=mapping)

删除索引

es.indices.delete(index='my_index')

四、文档操作

文档(Document)是 Elasticsearch 中的基本数据单元,以 JSON 格式存储。

创建文档

doc={"title":"Python 与 Elasticsearch","category":"dev",<
http://www.jsqmd.com/news/346891/

相关文章:

  • 当代码遇见宇宙射线:测试工程师必知的太空防护革命
  • Nicheformer 基础模型
  • 完整教程:仓颉语言 LinkedList 链表实现深度解析
  • 同花顺 app 设置技巧
  • Kotlin编程语言入门与常见问题
  • 三角形正反面之谜:三个点如何决定朝向?
  • 【MySQL 数据库】MySQL 数据库核心概念详解:库、表、字段、主键与关系型模型一文读懂
  • DNA 免疫抗体制备服务:构象保真的挑战性抗原抗体制备创新方案
  • NoSQL数据库在传感器大数据存储中的选型指南
  • 空间转录组
  • P1901 发射站
  • Node.js 24.13.0 (LTS)
  • 云计算与物联网融合:推动智慧城市的未来发展 - 指南
  • 树上背包+换根DP
  • 企业AI能力评估与供应商选择:AI应用架构师教你如何用评估结果筛选合作方
  • 智能数字资产登记系统数据存储架构:AI应用架构师的选型指南
  • 知识图谱在AI原生应用中的核心作用解析
  • 解离单细胞 (scRNA-seq),都被解离了,那是怎么测出单细胞Gene的表达量的
  • leetcode 909. Snakes and Ladders 蛇梯棋-耗时100
  • 大整数哈希
  • 海伯森点光谱应用案例之--医用胶囊盖体弧度检测
  • Scaling Up to Excellence: Practicing Model Scaling for Photo-Realistic Image Restoration-CVPR2024
  • 32岁程序员猝死:让我想起了我曾经的加班经历,庆幸自己还活着
  • 详解 MySQL 数据库索引实现机制 - B 树和 B + 树
  • 2026.2.5
  • AI应用架构师教你:企业知识库AI助手的日志分析架构
  • 《深度洞察:AI应用架构师谈人机协作对未来工作的深远意义》
  • 数据不出门,也能一起“卷模型”——聊聊隐私保护下的联邦学习:原理与工程实践
  • 图论专题
  • Neo4j Cypher查询语言:大数据分析的利器