python链接ES——学习笔记

相关文档
python与ES的链接库为elasticsearch.

pip install elasticsearch
node: python中from_  -> ES 中 from
python中doc_type  -> ES 中 type

为了保证库的灵活性,python中elasticsearch的接口尽量保证与ES相同。

全局选项

elasticsearch模块提供了一些用户可自行添加并应用于全局的选项

ignore

用户可通过设置ignore去忽略一些错误信息。用例如下

from elasticsearch import Elasticsearch
es = Elasticsearch()
# ignore 400 cause by IndexAlreadyExistsException when creating an index
es.indices.create(index='test-index', ignore=400)
# ignore 404 and 400
es.indices.delete(index='test-index', ignore=[400, 404])
代码错误
404class elasticsearch.NotFoundError(TransportError)
409class elasticsearch.ConflictError(TransportError)
400class elasticsearch.RequestError(TransportError)
Timeout 和 request_timeout

不管用户默认怎样,只等待1秒钟。request_timeout的参数为float型,单位是秒。

es.cluster.health(wait_for_status='yellow', request_timeout=1)

timeout, 某些API的调用也接收timeout参数。但是,这个超时设定是内部的,并不能确定请求结束时间。

响应结果过滤

返回结果中的’hits.hits._id’和’hits.hits._type’部分

es.search(index='test-index', filter_path=['hits.hits._id', 'hits.hits._type'])

也可以使用‘*’去匹配名字

es.search(index='test-index', filter_path=['hits.hits._*'])

Elasticsearch

class elasticsearch.Elasticsearch(hosts=None, transport_class=<class ‘elasticsearch.transport.Transport’>, **kwargs)
为用户提供Python到ES的直接映射
attributes列表

实例属性对应属性
catCatClient
clusterClusterClient
indicesIndicesClient
ingestIngestClient
nodesNodesClient
snapshotSnapshotClient
tasksTasksClient

parameters
connection_class,可设置自己的连接类。

es = Elasticsearch(connection_class=ThriftConnection)

hosts, lists of nodes.,以下方式均可

es = Elasticsearch(['xxx.xxx.x.xxx'], port=9200)#单个host

不同hosts需要通过字典设置不同的参数,方式如下。

# connect to localhost directly and another node using SSL on port 443
# and an url_prefix. Note that ``port`` needs to be an int.

es = Elasticsearch([
    {'host': 'localhost'},
    {'host': 'othernode', 'port': 443, 'url_prefix': 'es', 'use_ssl': True},
])

python对ES进行的各种操作

相关链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值