一、查询部分
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 聚合场景
目前观测云的聚合模版是