一、介绍

elasticsearch-py是一个官方提供的low-level的elasticsearch python客户端库。为什么说它是一个low-level的客户端库呢?因为它只是对elasticsearch的rest API接口做了一层简单的封装,因此提供了最大的灵活性,但是于此同时使用起来就不是太方便。相对于这个low-level的客户端库,官方还提供了一个high-level的python客户端库:elasticsearch-dsl,这个会在另一篇文章中介绍。

二、安装

不同的elasticsearch版本要求不同的客户端版本,所以安装的时候需要根据你的elasticsearch来决定,下面是一个简单的参考:

# Elasticsearch 6.x

elasticsearch>=6.0.0,<7.0.0

# Elasticsearch 5.x

elasticsearch>=5.0.0,<6.0.0

# Elasticsearch 2.x

elasticsearch>=2.0.0,<3.0.0

在兼容的大的版本号下尽量选择最新的版本。

pip install elasticsearch

三、API

3.1 API文档

所有API都尽可能紧密的映射原始的rest API。

3.1.1 全局选项

某些被客户端添加的参数可以使用在所有的API上。

1.ignore

被用户忽略某些http错误状态码。

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])

2.timeout

被用于设置超时时间。

# only wait for 1 second, regardless of the client's default

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

3.filter_path

被用于过滤返回值。

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

3.1.2 Elasticsearch

Elasticsearch是一个low-level客户端,提供了一个从python到es rest端点的直接映射。这个实例拥有属性cat、cluster、indices、ingest、nodes、snapshot和tasks,通过他们可以访问CatClient、ClusterClient、IndicesClient、IngestClient、NodesClient、SnapshotClient和TasksClient的实例。

elasticsearch类包含了操作elasticsearch许多常用方法,例如:get、mget、search、index、bulk、create、delete等,这些方法的具体用法,可以参考elasticsearch-py的官方文档。

在执行以上方法之前,首先需要获得一个elasticsearch的实例,而获取这个实例有两个方法,一个是给elasticsearch的初始化函数传递一个connection class实例,另一个是给elasticsearch的初始化函数传递要连接的node的host和port,其实最终这些host、port还是被传递给了connection class。

# create connection to localhost using the ThriftConnection

es = Elasticsearch(connection_class=ThriftConnection)

# 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},

])

3.1.3 Indices

indices用于操作、查询关于索引的信息,或者可以说是操作、查询索引相关的元数据。

3.1.4 Ingest

ingest是一个插件,用于丰富插入数据的插入。

3.1.5 Cluster

cluster用于获取和集群相关的信息,例如:集群的健康状态、settings等。

3.1.6 Nodes

nodes用于获取和节点相关的信息。

3.1.7 Cat

cat可以用来获取别名、分片信息、文档数量等信息。

3.1.8 Snapshot

snapshot用于管理快照。

3.1.9 Tasks

tasks是用于任务管理的,官方文档上提示该task是新特性,未来可能会改变,所以要注意。

3.2 X-Pack APIs

X-Pack是Elastic Stack扩展,它将安全性,警报,监视,报告和图形功能捆绑到一个易于安装的程序包中。

3.2.1 Info

3.2.2 Graph Explore

3.3.3 Licensing API

3.3.4 Machine Learning

3.3.5 Security APIS

3.3.6 Watcher APIS

3.3.7 Migration APIS

3.3 异常

这一节展示了使用elasticsearch-py时可能抛出的异常。

3.4 连接层API

connection是负责与集群连接的类。

3.4.1 Transport

transport封装与逻辑相关的传输。处理各个连接的实例化,并创建一个连接池来保存它们。

3.4.2 Connection Pool

connection pool是一个连接池,用于管理连接。

3.4.3 Connection Selector

connection selector是一个连接选择器,它最好的一个例子是zone-aware选择,可以自动选择本地连接,只有当本地node都无法连接是才会去选择连接其他node。

3.4.4 Urllib3HttpConnection

默认connection class。

3.5 传输类

传输模块列出了可以被当做elasticsearch初始化参数connection_class的connection class。

3.5.1 Connection

connection负责管理与elasticsearch节点的连接。

3.5.2 Urllib3HttpConnection

基于urllib的connection class,是默认connection class。

3.5.3 RequestsHttpConnection

基于requests的connection class,除非要使用requests相关的高级特性,否则建议不要使用该类。

3.6 helpers

helpers是一个简单的辅助函数的集合,这些函数抽象了一些细节或原始API。

3.6.1 bulk helpers

bulk API的特定格式要求导致直接使用它们会非常复杂,因此这里提供了几个bulk API的helper函数,具体使用方法可以参考elasticsearch-py的官方文档。

3.6.2 scan

scan是对scroll API的简单抽象。

3.6.3 reindex

reindex用于将可能满足给定查询的一个索引中的所有文档重新索引到另一个索引

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

linux下载python的es库,Elasticsearch py客户端库安装及使用方法解析相关推荐

  1. es(Elasticsearch)客户端Elasticsearch-head安装使用(04Elasticsearch-head安装篇)

    背景 elasticsearch-head是一款专门针对于elasticsearch的客户端工具,用来展示数据.elasticsearch-head是基于JavaScript语言编写的,可以使用npm ...

  2. linux下载python 没有iedl_在Ubuntu 12.04上安装IEs4Linux的步骤

    IEs4Linux是可用于Linux系统的ie浏览器,如果谷歌等浏览器无法使用网银的话,可通过IEs4Linux来实现,那么在Ubuntu 12.04中要如何安装IEs4Linux呢?随小编一起来看看 ...

  3. Py之pytest-shutil:Python库之pytest-shutil简介、安装、使用方法之详细攻略

    Py之pytest-shutil:Python库之pytest-shutil简介.安装.使用方法之详细攻略 目录 pytest-shutil简介 pytest-shutil安装 pytest-shut ...

  4. Py之cx_Freeze:Python库之cx_Freeze库(程序打包)简介、安装、使用方法详细攻略—案例之实现机器人在线24小时智能翻译

    Py之cx_Freeze:Python库之cx_Freeze库(程序打包)简介.安装.使用方法详细攻略-案例之实现机器人在线24小时智能翻译 导读      将Python程序生成exe程序目前流行这 ...

  5. Py之mglearn:python库之mglearn简介、安装、使用方法之详细攻略

    Py之mglearn:python库之mglearn简介.安装.使用方法之详细攻略 目录 mglearn简介 1.英文解释 mglearn安装 mglearn使用方法 1.Helper functio ...

  6. Py之imgaug:Python库之imgaug简介、安装、使用方法之详细攻略

    Py之imgaug:Python库之imgaug简介.安装.使用方法之详细攻略 目录 imgaug简介 imgaug安装 imgaug使用方法 imgaug简介 用于机器学习实验中的图像增强的库,特别 ...

  7. Py之twisted:Python库之twisted简介、安装、使用方法等详细攻略

    Py之twisted:Python库之twisted简介.安装.使用方法等详细攻略 目录 twisted简介 twisted安装 twisted使用方法 twisted简介 twisted 是pyth ...

  8. Py之ipykernel:Python库之ipykernel简介、安装、使用方法之详细攻略

    Py之ipykernel:Python库之ipykernel简介.安装.使用方法之详细攻略 目录 ipykernel简介 1.特点 ipykernel安装 ipykernel使用方法 1.Kernel ...

  9. Py之docx:Python库之docx简介、安装、使用方法详细攻略

    Py之docx:Python库之docx简介.安装.使用方法详细攻略 目录 Python库之docx简介 Python库之docx安装 docx使用方法 1.打开文档

最新文章

  1. 李开复看2019投资趋势:最坏的时代将酝酿最伟大的公司
  2. 程序员/设计师能用上的 75 份速查表(转)
  3. SpringBoot随笔
  4. python画端午节_我想带你去旅行,我用Python提前做了一份端午旅游攻略,请收下!...
  5. 苹果自带相册打马赛克_如果你用苹果手机!学会这3个技巧,就能让手机变得更加好用...
  6. 基于Vitual Box建立虚拟机,虚拟机系统为Linux Ubuntu16.04
  7. 使用thinkPhp,修改线上数据库的配置,请删除 Runtime 中的所有内容后重试
  8. EF6 Codefirst+MySql 数据库迁移
  9. 设计模式(2) 生成器模式(BUILDER)
  10. css中的@media用法总结
  11. [学习笔记]什么是存储过程?
  12. 关于调用第三方sdk
  13. 天童美语植树节:前人栽树后人乘凉
  14. 几种PHP实现网页抓取的程序代码
  15. 【RTT】SPI Flash 与文件系统(3):DFS 和 EasyFlash
  16. 成人大专计算机统考的操作详解,成人大专计算机统考选择题汇总
  17. input 限制输入2位小数
  18. Delay_ms延时函数详解
  19. postman测试接口成功,实际发请求时失败
  20. python忽略警告

热门文章

  1. R可视化删除ggplot2图中的网格线(Gridlines)
  2. python实现二叉树遍历(前序遍历、中序遍历、后序遍历)
  3. 目前服务器操作系统版本号,目前服务器操作系统版本号
  4. Python3 列表List
  5. networkx 有向图强连通_leetcode刷题(四):搜索(深度优先搜索,广度优先搜索)拓扑排序,强连通分量...
  6. ccf z字形 java_第三次CCF计算机软件能力认证题目:Z字形扫描
  7. html javascript 音频、视频、 mp3 、mp4 的播放、暂停、重新播放、获取音频时长、视频自动全屏播放
  8. pycharm 自动函数注释
  9. Moment矩计算公式
  10. centos7系统下scala安装详解