ElasticSearch 封装工具
ElasticSearch 工具
# -*- coding:UTF-8 -*-# author:user
# contact: test@test.com
# datetime:2021/8/16 14:30
# software: PyCharm"""
文件说明:ES工具
"""import pandas as pd
from elasticsearch import Elasticsearch
from elasticsearch import helpersclass EsUtil(object):def __init__(self, ip='127.0.0.1'):self.ip = ip# 无状态密码登录self.es = Elasticsearch([ip], port=9200)# 用户名密码状态# self.es = Elasticsearch([ip], http_auth=("elastic", "password"), port=9200)def create_index(self, index_name, mapping):"""mapping示例:"mappings":{"properties": {"question": {"type": "text","analyzer": "ik_smart","search_analyzer": "ik_smart","index": "true"},"answer": {"type": "text","index": "false"},"id": {"type": "integer"}}}"""if self.es.indices.exists(index_name):raise ValueError(index_name+" 已经存在")self.es.indices.create(index=index_name, body=mapping)def exit_index(self, index_name):return self.es.indices.exists(index_name)def delete_index(self, index_name):self.es.indices.delete(index=index_name)def insert_data(self, index_name, idx, body):"""body = {'question': '法外狂徒-张三','answer':'ssss', 'id': 1}"""return self.es.index(index=index_name, id=idx, body=body)def insert_batch_data(self, action):"""action = [{"_index": "repu","_id":"3", "_type":"_doc","_source":{"question": "安大略大","answer":"暗淡看","id":3}},{"_index": "repu", "_id":"4", "_type":"_doc","_source":{"question": "安大略大","answer":"暗淡看","id":4}},{"_index": "repu", "_id":"5", "_type":"_doc","_source":{"question": "安大略大","answer":"暗淡看","id":5}}]"""return helpers.bulk(self.es, action)def delete_by_query(self, index_name, body):"""body = {'query': {'match_all': {}}}body = {'query': {'match': {'id': 1}}}"""self.es.delete_by_query(index=index_name,body=body)def get_data_by_id(self, index_name, idx):return self.es.get(index=index_name, id=idx)def get_data_by_body(self, index_name, body):"""1. 精确查找 termsbody = {'query': {'terms': {'question':['张三', '李四']}}}2. 查询id和question包含:法外狂徒-张三body = {'query': {'multi_match': {'query': '法外狂徒-张三','fields': ['question','id']}}}3. match: 匹配question包含 ‘法外狂徒-张三’的所有数据body = {'query':{'match': {'question':'法外狂徒-张三'}}}4. 精确查找 term 查询question='安大略'的所有数据body = {'query': {'term': {'question': '安大略'}}}"""return self.es.search(index=index_name, body=body)def update_by_id(self, index_name, idx, body):"""body = {"doc":{"question": "略大","answer":"暗淡看","id":3}}"""return self.es.update(index=index_name,id=idx,body=body)def es_info(self):return self.es.info()if __name__ == '__main__':obj = EsUtil()print(obj.es_info())
ElasticSearch 封装工具相关推荐
- elasticsearch RestHighLevelClient 使用方法及封装工具
目录 EsClientRHL 更新日志 开发原因: 使用前你应该具有哪些技能 工具功能范围介绍 工具源码结构介绍 开始使用 未来规划 git地址:https://gitee.com/zxporz/ES ...
- elasticsearch 客户端工具ESClientRHL
elasticsearch 客户端工具Elasticsearch-ESClientRHL Elasticsearch-ESClientRHL: EsClientRHL是一个可基于springboot的 ...
- JAVA——Okhttp封装工具类
基本概念 OKhttp:一个处理网络请求的开源项目,是安卓端最火热的轻量级框架. Maven <!--OK HTTP Client--><dependency><grou ...
- Elasticsearch常用工具清单
1.题记 工欲善其事必先利其器,ELK Stack的学习和实战更是如此,特将工作中用到的"高效"工具分享给大家. 希望能借助"工具"提高开发.运维效率! 2.工 ...
- android文件读取工具类,Android 下读取Assets Properties操作封装工具类
Android 下读取Assets Properties操作封装工具类 发布时间:2018-06-03作者:laosun阅读(2081) 为了方便使用,首先创建BaseApplication类,如下所 ...
- 数据库MySQL基础---JDBC开发步骤--JDBC封装工具类--PreparedStatement实现CRUD操作
JDBC简介 1.JDBC定义Java数据库连接(Java Database Connectivity,简称JDBC):是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询 ...
- JAVA之旅(五)——this,static,关键字,main函数,封装工具类,生成javadoc说明书,静态代码块...
JAVA之旅(五)--this,static,关键字,main函数,封装工具类,生成javadoc说明书,静态代码块 周末收获颇多,继续学习 一.this关键字 用于区分局部变量和成员变量同名的情况 ...
- 扬帆技术论坛系统封装工具 SPAT v 5.5.3.6_BETA1[官方最新版]
给大家推荐一个不错的系统封装工具 SPAT . 1.本工具实现一键封装系统,并提供了丰富的封装和部署选项,使封装系统更加人性化.支持封装 Windows XP/2003. 2.本工具已集成大多数常见的 ...
- android api接口封装,android-apidesigner是一个网络接口封装工具
android-apidesigner android-apidesigner是一个网络接口封装工具,通过apidesigner,让接口变得统一的输出格式,解耦网络请求与数据解析 相关地址 设计思想 ...
- fat32 linux 打包工具_自己封装系统(雨林木风一键系统封装工具V3.65)
而自己做系 统需要使用专用的系统封装工具, 为大家推荐的雨林木风系统封装工具就是系统封装工具中 的精品之作, 继承雨林木风作品免费又好用的优秀传统, 可以帮助用户轻松的封装系统. 系 统封装技术已经非 ...
最新文章
- SDL 实现多线程 的一些BUG
- matlab while 跳出,请帮忙看下这个程序为什么跳不出WHILE循环??
- php当前月每天时间戳,php获取当前月与上个月月初及月末时间戳的方法
- JavaScript:堆栈溢出内存泄漏
- vc++ 6.0 三次bezier曲线绘制_Python matplotlib绘制散点图
- Fast Refresh 原理剖析
- 网秦安全盾 原理分析
- 判断语句——switch case
- 云计算面试题及答案,云计算工程师面试题集锦
- 外派linux运维,请好好善待你身边的Linux运维工程师,因为他们...
- char类型与字符编码
- 将文件保存到fpga
- 安全合规/GDPR--14--通用数据保护条例简介(GDPR简介)
- 资深投资人“厂长”沈忱:布局区块链就是在布局新的工业革命
- 亲测 可用 des 加密
- Scrapy爬取中国地震台网1年内地震数据
- 【渝粤题库】陕西师范大学202201 社区管理 作业
- 【建模算法】变异系数法(Python实现)
- 【vcpkg】POCO库编译链接总结
- led显示屏断电问题解决办法
热门文章
- 在线API 工具之SosoApi
- FPGA入门程序(1)——流水灯
- 斐讯k3c V1.7D frp升级
- BC26通过LWM2M接入电信AEP平台(透传模式)
- 尚学堂python培训靠谱吗_尚学堂百战程序员:Python的字符串
- spss和python stata matlab_毕业季:计量经济学实证研究中,哪款软件好(SPSS,Eviews,Matlab,stata,SAS)...
- 华为主题锁屏壁纸换不掉_华为手机总出现一些不明照片咋回事,原来你没关闭这个默认设置...
- 按键精灵定位坐标循环_按键精灵的控制命令居然恐怖到了这种程度
- inode客户端连接成功上不了网_Inode客户端上网常见问题及解决办法
- dos命令如何查看计算机信息,电脑DOS命令查看进程详细信息方法图解