Elasticsearch入门(4)-初识Index Template和Aggregation

前言

本篇就是ES初级知识的最后一篇了,初识Index Template和Aggregation,发现这两块内容实在是至关复杂,在es提升中进行进一步探索。本篇简单了解一些它们是什么sql

Index Template

什么是Index Template

  • Index Template - 帮助设定Mappings和Settings,并按照必定的规则,自动匹配到新建立的索引之上
    • 模板仅在一个索引被新建立时,才会产生做用。修改模板不会影响已建立的索引
    • 能够设定多个索引模板,这些设置会被“merge”在一块儿
    • 能够指定“order”的数值,控制“merging”的过程

举例

规则:全部索引建立时候,主分片和副本分片都是1数组

索引以index开头的,就把replica设置成2,app

映射转换设置,关闭字符串自动转date,开启字符串自动转数字框架

工做方式

  • 当一个索引被建立时
    • 应用Elasticsearch默认的 settings 和 mappings
    • 应用order数值低的Index Template中的设定
    • 应用order高的Index Template中的设定,以前的设定会被覆盖
    • 应用建立索引时,用户所指定的Setting和mapping,并覆盖以前模板的设定

Dynamic Template

  • Dynamic Template是定义在某个索引的mapping中
  • Template有一个名称
  • 匹配规则是一个数组
  • 为匹配到字段设置Mapping

简单了解,后续详细扩展less

Elasticsearch聚合分析

什么是聚合(Aggregation)

  • Elasticsearch除搜索外,还可针对数据进行统计分析,这就是聚合
    • 特色:实时性高
    • 帮助进行搜索结果的过滤,无需再客户端进行分析逻辑了
    • 应用:Kibana可视化报表-聚合分析
      • 岗位分布
      • 项目框架使用状况
      • 薪水分布
      • 地理位置分布
      • 订单增加状况
      • 等等···
  • 经过聚合,可获得一个数据的概览,对全套的数据进行分析和总结,而不是寻找单个文档
    • 如:客房数量
    • 价格区间可预订的不一样星级酒店的数量
  • 高性能,只要一条语句,就能够从Elasticsearch获得分析结果

集合的分类

  • Bucket Aggregation
    • 一些列知足特定条件的文档集合
  • Metric Aggregation
    • 一些数据运算(最大最小平均值等),能够对文档字段进行统计分析
  • Pipeline Aggregation
    • 对其余的集合结果进行二次聚合
  • Matrix Aggregation
    • 支持对多个字段的操做并提供一个结果矩阵

Bucket & Metric

  • Bucket - 一组知足条件的文档,相似于sql中的group by
  • Metric - 一些系列的统计方法,相似于sql中的 count

Bucket

如图:商品能够分为高中低档,而在高档桶中,又可分为好中差类型性能

  • Elasticsearch提供了不少类型的Bucket,可用多种方式划分文档
    • Term & Range (时间/年龄/位置)

按照不一样的目的地分桶,查询获得各个目的地统计结果3d

Metric

  • Metric 基于数据集计算结果,除了支持在字段上进行计算,一样支持在脚本(painless script)产生的结果上进行计算
  • 大可能是Metric是数学计算,仅输出一个值
    • min / max / sum / avg / cardinality
  • 部分metric支持输出多个数值
    • state(统计值,高低同时输出)
    • percentiles(百分位,根据百分位数输出不通知)
    • percentile_ranks

如图,查看航班目的地的统计信息,获得均价,最高最低价格code

Matrix

可在多个字段上进行操做,基于请求文档的字段值,生成matrix结果。不一样于桶聚合和度量聚合,matrix暂不支持脚本操做。cdn

Pipeline

管道聚合,对其余聚合和相关度量的输出进行聚合。blog

总结

  • Index Template能够定义Mappings和Settings,并自动的应用到新建立的索引之上,须要合理使用Index Template。
  • Dynamic Template支持在具体的索引上指定规则,为新增长的字段指定相应的Mappings
  • Elasticsearch提供了Bucket/Metric/Pipeline/Matrix四种方式的聚合
相关文章
相关标签/搜索