一、查询部分

1.1 精确查询

ES 查询 简单描述
term 精确匹配字符串
terms 多个字符串精确匹配
wildcard/regexp 通配/正则匹配
range 范围查询
exists 是否存在查询

1.2 模糊/全文查询

ES 查询 简单描述
match 全文搜索字符串
match phrase 词组全文搜索
query string 复合查询,目前主要应用的查询方式

1.3 其他

ES 查询 简单描述
bool bool组合查询

1.4 目前存在问题

ES 查询 简单描述
排序 当前观测云很多列表场景,都需要按照时间逆序查询,但是当数据量上来后,按照时间逆序查询耗时较大
schema 目前 show_field_keys, show_field_values 函数都是按照 桶聚合 或者 折叠方式获取,无法通过简单的 mapping 获取(因为观测云有过滤后,再展示field列表的需求)
字段类型冲突 ES中相同的索引中,同名字段需要是相同类型,但是实际场景中,存在同一个字段变更字段类型

二、聚合分析

2.1 桶聚合

ES 聚合 简单描述
terms 分桶聚合,一般是top几的聚合分析
histogran 直方图聚合
composite 复合聚合,主要用于聚合分页

2.2 聚合函数

ES 聚合 简单描述
avg/max/min/sum 平均值/最值/求和
value count / cardinality 汇总/ 去重汇总
percentile 百分位统计
tophits 聚合后查询

2.3 管道聚合

管道聚合

2.4 存在问题

ES 聚合 简单描述
多层嵌套聚合,(1) 桶太多报错 (2) 聚合慢 多层 group by ,如果使用 composite 方式,不符合要求 (无法具体指定每一层的size)
大数据量场景下,日期直方图聚合慢

三、最常用场景梳理

3.1 聚合场景

目前观测云的聚合模版是

image.png