Elasticsearch -Python Client ,Python API
API Documentation
所有API调用都尽可能接近地映射原始REST api,包括调用的必需参数和可选参数之间的区别。这意味着代码区分了位置参数和关键字参数。但是,我们建议在所有调用中都使用关键字参数,以确保一致性和安全性。
初次使用
安装 elasticsearch
pip install elasticsearch
连接 elasticsearch
from elasticsearch import Elasticsearch
es = Elasticsearch(hosts='127.0.0.1:9200') # hosts为 elasticsearch 监听地址,默认端口9200,本机连接请使用localhost
创建 index
from elasticsearch import Elasticsearch
es = Elasticsearch()
doc = {
'title': '美方要求中方关闭休斯顿领馆',
'us_reason': '间谍活动、窃取资料',
'cn_response': '强烈谴责、坚决反对'
}
res = es.index(index='test_news', id=1, body=doc)
print(res)
get 查询
from elasticsearch import Elasticsearch
es = Elasticsearch()
res = es.get(index='test_news', id=1)
print(res)
print(res['_source'])
search 查询
from elasticsearch import Elasticsearch
es = Elasticsearch(hosts='127.0.0.1:9200')
doc = {
'query':
{
'match_all':{}
}
}
res = es.search(index='test_news', body=doc)
print(res)
Ignore 忽略
如果elasticsearch返回2XX响应,则认为API调用成功(并将返回响应)。否则,返回Status_code
,有时为了不让程序引发异常,可以使用Ignore忽略指定的Status_Code,来让程序正常运行。
查询一个不存在的id 返回StatusCode404
from elasticsearch import Elasticsearch
es = Elasticsearch()
res = es.get(index='test_news', id=5)
print(res)
print(res['_source'])
使用Ignore 忽略404 错误
from elasticsearch import Elasticsearch
es = Elasticsearch()
res = es.get(index='test_news', id=5, ignore=404)
print(res)
程序不再引发异常
filter_path 响应过滤
例如,仅返回_id和_source.cn_response :
from elasticsearch import Elasticsearch
es = Elasticsearch()
res = es.get(index='test_news', id=1, filter_path=['_id', '_source.cn_response'])
print(res)