1-Elasticsearch - For Python之连接篇

before

elasticsearch-6.8.15

elasticsearch模块的安装,不能无脑直接安装最新版,而是要根据不同的elasticsearch版本来下载不同的elasticsearch模块。
这里参考PYPI上提示:

而我的elasticsearch版本是6.x,所以要这么下载:

pip install "elasticsearch>=6,<7"

Python连接elasticsearch

Python连接elasticsearch有以下几种连接方式:

from elasticsearch import  Elasticsearch
# es = Elasticsearch()    # 默认连接本地elasticsearch
# es = Elasticsearch(['127.0.0.1:9200'])  # 连接本地9200端口
es = Elasticsearch(
    ["192.168.1.10", "192.168.1.11", "192.168.1.12"], # 连接集群,以列表的形式存放各节点的IP地址
    sniff_on_start=True,    # 连接前测试
    sniff_on_connection_fail=True,  # 节点无响应时刷新节点
    sniff_timeout=60    # 设置超时时间
)

配置忽略响应状态码

es = Elasticsearch(['127.0.0.1:9200'],ignore=400)  # 忽略返回的400状态码
es = Elasticsearch(['127.0.0.1:9200'],ignore=[400, 405, 502])  # 以列表的形式忽略多个状态码

一个简单的示例

from elasticsearch import  Elasticsearch
es = Elasticsearch()    # 默认连接本地elasticsearch
print(es.index(index='py2', doc_type='doc', id=1, body={'name': "张开", "age": 18}))
print(es.get(index='py2', doc_type='doc', id=1))

第1个print为创建py2索引,并插入一条数据,第2个print查询指定文档。
查询结果如下:

{'_index': 'py2', '_type': 'doc', '_id': '1', '_version': 1, 'result': 'created', '_shards': {'total': 2, 'successful': 1, 'failed': 0}, '_seq_no': 0, '_primary_term': 1}
{'_index': 'py2', '_type': 'doc', '_id': '1', '_version': 1, 'found': True, '_source': {'name': '张开', 'age': 18}}

see also:[API文档-Elasticsearch6.3.1文档](https://elasticsearch-py.readthedocs.io/en/master/api.html#global-options)
posted @ 2019-03-28 16:00  听雨危楼  阅读(10002)  评论(1编辑  收藏  举报