本文首发于公众号:Hunter后端

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

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

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

索引的创建和删除操作

使用的还是 es 的连接:

from elasticsearch_dsl import connections

connections.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笔记四之创建和删除操作的更多相关文章

  1. Python——追加学习笔记(四)

    函数 1.python里的函数可以返回一个值或者对象,知识在返回一个容器对象的时候有点不同,看起来像是能返回多个对象. >>> def bar(): ... return 'abc' ...

  2. 【原】Learning Spark (Python版) 学习笔记(四)----Spark Sreaming与MLlib机器学习

    本来这篇是准备5.15更的,但是上周一直在忙签证和工作的事,没时间就推迟了,现在终于有时间来写写Learning Spark最后一部分内容了. 第10-11 章主要讲的是Spark Streaming ...

  3. 【Python】学习笔记四:数学运算

    python中的加减乘除比其他的语言简单,不需要对其赋值变量 加减乘除 ) #加法 ) #减法 ) #乘法 ) #除法 5.0 ) #乘方 判断 判断返回的是True或者False ) #等于 Tru ...

  4. Android 学习笔记四:创建工具栏按钮

    原文:http://blog.csdn.net/lihongxun945/article/details/48951199 前面我们已经可以在一个Activity中添加一些按钮之类的组件.由于手机的屏 ...

  5. Python强化训练笔记(四)——字典的排序

    假如有学生成绩以字典顺序排列:{'Tom': 87, 'Jack': 90, 'Rose': 100.....} 想要根据学生的成绩来进行排序,可以考虑使用sorted函数.但是sorted函数用在字 ...

  6. Python爬虫学习笔记(四)

    Request: Test1(基本属性:POST): 代码1: import requests # 发送POST请求 data = { } response = requests.post(url, ...

  7. MYSQL初级学习笔记四:查询数据的操作DQL(SELECT基本形式)(26-35)

    知识点六:查询数据的操作DQL(SELECT基本形式)(26-35) CREATE DATABASE IF NOT EXISTS cms DEFAULT CHARACTER SET utf8; USE ...

  8. Python基础学习笔记(六)常用列表操作函数和方法

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-lists.html 3. http://www.liaoxuef ...

  9. iView学习笔记(四):Form表单操作

    1.后端准备 环境说明 python版本:3.6.6 Django版本:1.11.8 数据库:MariaDB 5.5.60 新建Django项目,在项目中新建app,配置好数据库 2.后端代码(基于C ...

  10. PowerShell学习笔记四_函数、IO操作、字符操作、数组

    使用静态方法 $now = [DateTime]::Now 实例化 $var=New-Object System.DateTime(1991,12,14)#实例化不需要[] 函数定义 Function ...

随机推荐

  1. 阿里云OSS前端直传+net core后端签名

    OSS前端直传+后端签名 一.服务端签名后前端直传 首先安装阿里云SDK Aliyun.OSS.SDK.NetCore public static string accessKeyId = " ...

  2. 面试突击:MVCC 和间隙锁有什么区别?

    MVCC 和间隙锁是两种完全不同的机制,但它们的目的都是相同的,都是用来保证数据库并发访问的,我们先来看二者的定义. MVCC 定义 MVCC 是多版本并发控制(Multi-Version Concu ...

  3. CSS3新特性值逻辑选择器

    1. :is 解释::is() CSS伪类函数将选择器列表作为参数,并选择该列表中任意一个选择器可以选择的元素. 例如 对于多个不同父容器的同个子元素的一些共性样式设置,传统写法如下 header p ...

  4. ACM-NEFU15届校赛-大一组

    A. 三角形面积 #include <bits/stdc++.h> using namespace std; int main() { double a,b,c; double ans,p ...

  5. kubernetes(k8s)部署 Metrics Server 资源

    资源使用指标,例如容器 CPU 和内存使用率,可通过 Metrics API 在 Kubernetes 中获得.这些指标可以直接被用户访问,比如使用 kubectl top 命令行,或者被集群中的控制 ...

  6. python实现桌面截图功能

    PIL中的ImageGrab模块 import time import numpy as np from PIL import ImageGrab img = ImageGrab.grab(bbox= ...

  7. python入门教程之三编码问题

    1编码问题 Python文件中如果未指定编码,在执行过程中会出现报错: !/usr/bin/python print ("你好,世界") 以上程序执行输出结果为: 文件" ...

  8. 新旧版本功能对比 | v1.5.0 全新升级

    Hi~社区的小伙伴们大家好呀! CloudQuery 最新 1.5.0 社区版本即将于 4月14日 发布,正式上线前,我们迫不及待与大家分享与 v1.4 相比,v1.5.0 在性能和功能上有哪些更新和 ...

  9. 3D开发工具HOOPS最新解析合集!助力实现web端高性能模型渲染!

    一.3D技术为创新提供强大助力(1)3D专家提供专属技术支持服务不管您想搭建桌面.WEB或者移动端APP应用,技术领先全球的HOOPS Platform组件都可以为您提供弹性的3D集成架构,同时,一批 ...

  10. 新手如何让一个python写的游戏运行起来

    本文主要解决问题为python中的pygame库安装 安装包版本:python-3.4.3.amd64.msi 下载链接:https://pan.baidu.com/s/1_jIRdVugSNzXKb ...