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 封装工具相关推荐

  1. elasticsearch RestHighLevelClient 使用方法及封装工具

    目录 EsClientRHL 更新日志 开发原因: 使用前你应该具有哪些技能 工具功能范围介绍 工具源码结构介绍 开始使用 未来规划 git地址:https://gitee.com/zxporz/ES ...

  2. elasticsearch 客户端工具ESClientRHL

    elasticsearch 客户端工具Elasticsearch-ESClientRHL Elasticsearch-ESClientRHL: EsClientRHL是一个可基于springboot的 ...

  3. JAVA——Okhttp封装工具类

    基本概念 OKhttp:一个处理网络请求的开源项目,是安卓端最火热的轻量级框架. Maven <!--OK HTTP Client--><dependency><grou ...

  4. Elasticsearch常用工具清单

    1.题记 工欲善其事必先利其器,ELK Stack的学习和实战更是如此,特将工作中用到的"高效"工具分享给大家. 希望能借助"工具"提高开发.运维效率! 2.工 ...

  5. android文件读取工具类,Android 下读取Assets Properties操作封装工具类

    Android 下读取Assets Properties操作封装工具类 发布时间:2018-06-03作者:laosun阅读(2081) 为了方便使用,首先创建BaseApplication类,如下所 ...

  6. 数据库MySQL基础---JDBC开发步骤--JDBC封装工具类--PreparedStatement实现CRUD操作

    JDBC简介 1.JDBC定义Java数据库连接(Java Database Connectivity,简称JDBC):是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询 ...

  7. JAVA之旅(五)——this,static,关键字,main函数,封装工具类,生成javadoc说明书,静态代码块...

    JAVA之旅(五)--this,static,关键字,main函数,封装工具类,生成javadoc说明书,静态代码块 周末收获颇多,继续学习 一.this关键字 用于区分局部变量和成员变量同名的情况 ...

  8. 扬帆技术论坛系统封装工具 SPAT v 5.5.3.6_BETA1[官方最新版]

    给大家推荐一个不错的系统封装工具 SPAT . 1.本工具实现一键封装系统,并提供了丰富的封装和部署选项,使封装系统更加人性化.支持封装 Windows XP/2003. 2.本工具已集成大多数常见的 ...

  9. android api接口封装,android-apidesigner是一个网络接口封装工具

    android-apidesigner android-apidesigner是一个网络接口封装工具,通过apidesigner,让接口变得统一的输出格式,解耦网络请求与数据解析 相关地址 设计思想 ...

  10. fat32 linux 打包工具_自己封装系统(雨林木风一键系统封装工具V3.65)

    而自己做系 统需要使用专用的系统封装工具, 为大家推荐的雨林木风系统封装工具就是系统封装工具中 的精品之作, 继承雨林木风作品免费又好用的优秀传统, 可以帮助用户轻松的封装系统. 系 统封装技术已经非 ...

最新文章

  1. linux漏洞知乎_安装 Manjaro Linux 后必做的 6 件事 | Linux 中国
  2. jdbc 自增id 原理_给“小白”漫画+图示讲解MyBatis原理,就问香不香!
  3. 解锁并设置远程登录尝试次数
  4. 前端性能优化 -- 从 10 多秒到 1.05 秒
  5. ArcGIS实验教程——实验四十一:ArcGIS区域分析统计直方图(土地利用--坡度分级柱状统计图的制作)
  6. linux系统搭建ftp服务器--只给某个用户访问其默认目录下的文件
  7. mongodb和mysql的对比_MongoDB和MySQL的区别
  8. java服务端无法发送给客户端,无法从客户端向服务器发送消息
  9. CoreLocation框架--监测方向/地磁传感器
  10. java 安全认证_restful安全认证
  11. 微积分 --- 以e为底的指数函数(个人学习笔记)
  12. 织梦php 文章采集规则,采集规则的管理 --- 采集节点管理
  13. Android CompoundButton
  14. Android App 启动时显示正在加载图片(源码)
  15. 【C语言】入门基础选择题附答案
  16. 帝国cms插件-百度收录api模式插件
  17. 【LDC1314】金属传感器(电感传感器)的调试技巧
  18. win10輸入法去掉语言栏?win10輸入法切换简体繁体?
  19. LTE上行物理层传输机制(1)-PUSCH上行跳频之Type1频率跳频
  20. 盘一盘那些开设了大数据专业的中国高校

热门文章

  1. 64qam调制解调MATLAB,16QAM调制解调MATLAB).doc
  2. jsp在校大学生助学贷款管理系统
  3. python绘制三角函数图像_用python画三角函数
  4. 「 Matlab 」矩阵运算讲解
  5. [整理]WebUploader + SpringMVC 实现多文件断点续传之二 多文件断点续传
  6. java代码规范插件_阿里java代码规范IDEA插件之傻瓜教程
  7. Linux操作系统实践
  8. Cgroup 资源配置方法
  9. Linux自学:常用新建命令的使用方法
  10. mid、mif文件转shapefile、geojson等格式的数据