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

Python连接es笔记四之创建和删除操作

这一篇笔记介绍一下索引和数据的创建和删除。

其实对于索引来说,如果可以接触到 kibana 的话,可以很方便的在界面进行操作,这里简单介绍一下如何使用代码来操作索引的创建和删除。

索引的创建和删除操作

使用的还是 es 的连接:

from elasticsearch_dsl import connectionsconnections.configure(default={"hosts": "localhost:9200"},
)conn = connections.connections.get_connection("default")

创建索引

index_name = "test_create"
conn.indices.create(index_name)

检测索引是否存在

print(conn.indices.exists(index_name))

返回的是一个布尔型数据。

删除索引

conn.indices.delete(index_name)

数据的创建和删除

创建单条数据

还是默认使用刚刚创建的索引 test_create,我们需要往里面加入一条数据,示例如下:

index_name = "test_create"conn.index(index=index_name,id=1,body={"name": "李白"}
)

这样就往里面写入了一条 id=1 的数据,如果不指定 id 参数,系统会为我们自动分配一个 id:

conn.index(index=index_name,body={"name": "李白"}
)

这种创建方式也是允许的。

批量创建数据

这里用到在批量更新时候的使用过的 elasticsearch.helpers 函数。

示例如下:

action_1 = {"_op_type": "index","_index": "test_create","doc": {"age": 20, "name": "杨过", "address": "终南山"},
}action_2 = {"_op_type": "index","_index": "test_create","doc": {"age": 21, "name": "郭靖", "address": "桃花岛"},
}action_list = [action_1, action_2]
helpers.bulk(conn, actions=action_list)

在这里,因为是创建数据,所以 _op_type 的值为 index,剩下的使用方法和之前更新的操作一致。

删除操作

删除操作在第一篇笔记介绍查询数据的时候带过一笔,就是通过 Search() 方法加入条件后,不执行 execute(),而是执行 delete() 函数进行删除:

s = Search(using="default").index("exam").query("match", name="张三丰")
s.delete()

还有一种 es 连接直接操作的 delete_by_query() 函数,示例如下:

conn = connections.connections.get_connection("default")q1 = ES_Q("term", name="杨过")conn.delete_by_query(index="exam",body={"query": q1}
)

原文链接:Python连接es笔记四之创建和删除操作

http://www.lryc.cn/news/39503.html

相关文章:

  • 字符串填充到指定长度
  • macOS虚拟机安装全过程(VMware)
  • 第十三届蓝桥杯A组:选数异或——三种解法(线段树、DP、ST表)
  • 【CTF】CTF竞赛介绍以及刷题网址
  • Springboot怎么优雅实现大文件的上传
  • 2月编程语言排行榜新鲜出炉,谁又摘得桂冠?
  • 机器学习中的数学原理——模型评估与交叉验证
  • JAVA开发(JSP的9大内置对象和4大作用域)
  • (4)EKF失控保护
  • 数论----质数的求解(C/C++)
  • 【电赛MSP430系列】GPIO、LED、按键、时钟、中断、串口、定时器、PWM、ADC
  • 【Linux】进程理解与学习(Ⅱ)
  • vscode 爽到起飞的快捷键
  • vs +qt 打包.cpp和.h为DLL文件
  • echarts有滑块
  • MATLAB绘制ROC曲线
  • ChatGPT前传
  • 我的十年编程路 2020年篇
  • 力扣-SQL【入门】
  • Vue中组件到底是什么
  • 不同时间间隔数据对统计结果的影响
  • hudi系列-数据写入方式及使用场景
  • C # FileStream文件流
  • Go语言中的保留字和运算符详解
  • Linux编译之(1)C语言基础
  • CPU平均负载高问题定位分析
  • Python蓝桥杯训练:基本数据结构 [二叉树] 中
  • 读取 DTC 信息服务 (0x19) – UDS 协议
  • Hive 分区表新增字段 cascade
  • 【Java版oj】day08两种排序方法、最小公倍数