微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python 操作Elasticsearch Api

一. 环境准备:

Python 3.8
Elasticsearch 7.5
VirtaulBox 虚拟机客户端CentOs7
参考文档: https://elasticsearch-py.readthedocs.io/en/v7.12.1/transports.html

二. 连接Es

  1. 安装依赖包:pip install elasticsearch
  2. 连接es 方法:
# -*- coding=utf8 -*-
from elasticsearch import Elasticsearch
import json
es = Elasticsearch(hosts="192.168.0.102", port=9200)

<Elasticsearch([{'host': '192.168.0.102'}])>

三.API详解
第一种: 获取索引信息
(a) 方法: cat
(b) 代码示例:es.cat.indices(index=None)
© 代码:

# index= None:表示查询所有的索引, 如果传入单个索引名表示查询单个索引信息
print(es.cat.indices(index=None))
# print(es.cat.indices(index='bark'))   # yellow open bark NZYr9-8jSM-uoYvIHiYe6g 1 1 150 0 55.4kb 55.4kb  

结果:

green  open .kibana_7.12.1_001              OJwFwVauSTWcL_RI7PLdZA 1 0  68   10   2.1mb   2.1mb
green  open .apm-custom-link                ZiM3n3fWR0icqm3FO9RKhg 1 0   0    0    208b    208b
yellow open bark                            NZYr9-8jSM-uoYvIHiYe6g 1 1 150    0  55.4kb  55.4kb
green  open .apm-agent-configuration        Z9NrQV5dRuuO84bPYEUQyA 1 0   0    0    208b    208b
green  open .kibana_task_manager_7.12.1_001 HD8P3_JsRmWKsVhzZyf26g 1 0   9 1470 221.9kb 221.9kb
green  open .kibana-event-log-7.12.1-000001 OcqhJ8bcTluGbtcnglVVUw 1 0   2    0    11kb    11kb
green  open .kibana-event-log-7.12.1-000002 9aaYdlYpSnK3Ih_8qWgfDA 1 0   1    0   5.6kb   5.6kb
green  open .tasks                          KknWSFFbRxubG5TzdX-pzg 1 0   2    0   7.8kb   7.8kb
yellow open customer                        BskrxEfmTt6wEjfNVASyDg 1 1   1    0   3.8kb   3.8kb

在这里插入图片描述

第二种:获取索引信息

  1. 获取索引信息
    (a) 方法: indices.get_mapping
    (b) 代码示例: es.indices.get_mapping(index=None,doc_type=None,params=None)
    © 代码
# -*- coding=utf8 -*-
from elasticsearch import Elasticsearch
import json
#  连接es服务端,配置端口
es = Elasticsearch(hosts="192.168.0.102", port=9200)
#  获取所以方法:
#	参数为: 获取哪个索引就获取哪个索引的信息, 不传代码获取全部的索引信息.
get= es.indices.get_mapping(index=None,doc_type=None,params=None)
#   获取指定的索引.
#get= es.indices.get_mapping(index="bark",doc_type=None,params=None)
#  返回结果是dict格式,通过json转成JSON格式
dumps = json.dumps(get)
print(dumps)

在这里插入图片描述

© 返回的结果,与postman调用查询所有的索引的结果一致

在这里插入图片描述

删除索引:
方法: es.indices.delete(index=indexName)
代码:

delete= es.indices.delete(index='test01')
print(delete)

返回结果:
{'ackNowledged': True}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐