python之操作elasticsearch7.6.0
时间:2020-05-13
本文章向大家介绍python之操作elasticsearch7.6.0,主要包括python之操作elasticsearch7.6.0使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
安装模块
pip install elasticsearch==7.6.0
from elasticsearch import Elasticsearch
# 链接es服务
host = 'localhost:9200'
es = Elasticsearch([host])
# 索引名称
index_name = 'student1'
# 指定mappings和settings
request_body = {
"mappings": {
"properties": {
"name": {
"type": "keyword"
},
"age": {
"type": "integer"
},
"height": {
"type": "integer"
}
}
}
}
def create(index, body=None):
"""
创建索引
:param index: 索引名称
:return: {'acknowledged': True, 'shards_acknowledged': True, 'index': 'student1'}
"""
if es.indices.exists(index=index):
es.indices.delete(index=index) # 删除索引
res = es.indices.create(index=index, body=body)
return res
def delete(index):
"""
删除索引
:param index: 索引名称
:return: True 或 False
"""
if not es.indices.exists(index):
return False
else:
res = es.indices.delete(index=index)
return res['acknowledged']
def add(index, body, id=None):
"""
(单条数据添加或更新)添加或更新文档记录,更新文档时传对应的id即可
使用方法:
`
body = {"name": "long", "age": 11,"height": 111}
add(index=index_name,body=body)
或
body = {"name": "long", "age": 11,"height": 111}
add(index=index_name,body=body,id=1)
`
:param index: 索引名称
:param body:文档内容
:param id: 是否指定id,如不指定就会使用生成的字符串
:return:{'_index': 'student1', '_type': '_doc', '_id': 'nuwKDXIBujABphC4rbcq', '_version': 1, 'result': 'created', '_shards': {'total': 2, 'successful': 1, 'failed': 0}, '_seq_no': 0, '_primary_term': 1}
"""
res = es.index(index=index, body=body, id=id)
return res['_id'] # 返回 id
def search(index=None):
"""
查询记录:如果没有索引名称的话默认就会查询全部的索引信息
:param index:查询的索引名称
:return:
"""
if not index:
return es.search()
else:
return es.search(index=index)
if __name__ == '__main__':
# 查询文档
res = search(index=index_name)
print(res)
原文地址:https://www.cnblogs.com/zhenzi0322/p/12883253.html
- 有趣 不用js也能创建silverlight
- Hadoop和Spark的异同
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(62)-EF链接串加密
- sl 2.0 重要更新
- 云计算技术原理
- WCF技术剖析之五:利用ASP.NET兼容模式创建支持会话(Session)的WCF服务
- 进入AI时代,你准备好了吗?
- TiDB 在 G7 的实践和未来
- 投资钛值的你,知道钛链是什么吗?
- Is this a MS EnterLib DAAB BUG or not?
- Silverlight 2 has a Timer (DispatcherTimer)
- 难道调用ThreadPool.QueueUserWorkItem()的时候,真是必须调用Thread.Sleep(N)吗?
- silverlight 《Hands-On-Labs》教程系列
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(67)-MVC与ECharts
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android 自定义球型水波纹带圆弧进度效果(实例代码)
- Android自定义View实现弹幕效果
- 使用Injection Token将字符串类型的参数注入到类的构造函数里
- 联想Y480 ubuntu安装有线驱动
- 通过运行时单步调试弄清楚[(ngModel)]的双向绑定的工作原理
- Shadow Root DOM的一些API
- 【Flutter高级玩法- Flow 】我的位置我做主
- PCMAN FTP STOR命令栈溢出
- 一个基于ngrx的Angular图书搜索应用,带网络请求
- Android利用RecyclerView实现列表倒计时效果
- 【Flutter Unit 重大更新 1 】超好用的组件收藏夹上线
- android特卖列表倒计时卡顿问题的解决方法
- dotnet 多线程禁止同时调用相同的方法 禁止方法重入调用 双检锁的设计
- android实现倒计时功能(开始、暂停、0秒结束)
- 【-Flutter/Dart 语法补遗-】 sync* 和 async* 、yield 和yield* 、async 和 await