您的位置:首页 > 编程语言 > Python开发

Python ElasticSearch API

2017-08-22 10:31 211 查看
描述:ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。下面介绍了利用Python API接口进行数据查询,方便其他系统的调用。

安装API

建立es连接

  

数据检索功能

常用参数

index - 索引名
q - 查询指定匹配 使用Lucene查询语法
from_ - 查询起始点 默认0
doc_type - 文档类型
size - 指定查询条数 默认10
field - 指定字段 逗号分隔
sort - 排序 字段:asc/desc
body - 使用Query DSL
scroll - 滚动查询

统计查询功能

# 语法同search大致一样,但只输出统计值

  

知识扩展

滚动demo

以上demo实现了一次取若干数据,数据取完之后结束,不会获取到最新更新的数据。我们滚动完之后想获取最新数据怎么办?滚动的时候会有一个统计值,如total: 5。跳出循环之后,我们可以用_from参数定位到5开始滚动之后的数据。

Query DSL

range过滤器查询范围

gt: > 大于
lt: < 小于
gte: >= 大于或等于
lte: <= 小于或等于

  

bool组合过滤器

must:所有分句都必须匹配,与 AND 相同。
must_not:所有分句都必须不匹配,与 NOT 相同。
should:至少有一个分句匹配,与 OR 相同。

term过滤器

term单过滤

  

terms复数版本,允许多个匹配条件

正则查询

match查询

match 精确匹配

multi_match 多字段搜索

demo

获取最近一小时的数据

  

条件过滤查询

Terms Facet 单字段统计

   

一次统计多个字段

  

多个字段一起统计

  

数据组装

以下是kibana首页的demo,用来统计一段时间内的日志数量

  

如果想添加匹配条件,在以上代码标识部分加上过滤条件,按照以下代码格式即可

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: