先挖坑,慢慢填
Elasticsearch的DSL
基础操作
GET
POST
DELETE
PUT
HEAD
基础查询
dsl = {
}
筛选查询
1.字段内容等于
2.字段内容包含
3.包含指定字段名
4.kibana查询条件直接使用到DSL中
5.limit记录条数查询:size
多条件教材筛选
1.或条件
2.非条件
3.与条件
聚合查询
1.按时间字段聚合
2.按字段的枚举值聚合
3.去重统计
排序
Elasticsearch分页查询
- 针对原始记录
def select_es_by_scroll(es_url, dsl):
# 记录上限
MAX_PAGE_NUM = dsl['size'] = 10000
resp = requests.get(es_url,json=dsl)
resp.raise_for_status()
resp_base = resp.json()
result_json = resp_base['hits']['hits']
sid = resp_base['_scroll_id']
if resp_base.get('hits').get('total') > MAX_PAGE_NUM:
# 循环的初始化
scroll_dsl = {'scroll_id': sid}
scroll_es_url = re.sub('arius/.*/_search','arius/_search/scroll',es_url)
print(scroll_es_url)
while len(resp_base['hits']['hits']) > 0:
resp = requests.get(scroll_es_url,json=scroll_dsl)
resp.raise_for_status()
resp_base = resp.json()
# 结果输出
result_json = result_json + resp_base['hits']['hits']
print(len(result_json))
# delete _scroll_id
requests.delete(scroll_es_url,json=scroll_dsl)
return result_json
else:
return result_json
- 针对聚合结果的数据分页查询
# 已经遇到了该问题,还没有解决
kibana可视化图表配置
(这个可以单开一个的吧)
参考链接: