一、Index Template与Dynamic Template的概念

  1、Index Template:它是用来根据提前设定的Mappings和Settings,并按照一定的规则,自动匹配到新创建的索引上。

    1)模板仅是一个索引被创建时才会起作用,修改模板并不会影响已创建的索引;

    2)可以设定多个索引模板,这些设置会被merge在一起;

    3)通过指定order的数值,控制merge的过程;

  2、Index Template的工作方式如下:

    当一个索引被创建时,会执行如下操作:

    1)应用ElasticSearch默认的Mappings和Settings;

    2)应用order数值低的Index Template中的设定;

    3)应用order数值高的Index Template中的设定,之前的设定会被覆盖;

    4)创建索引时,用户此时进一步指定了索引的Mappings和Settings,那么覆盖之前模板中的设定;

  3、Dynamic Template:根据ElasticSearch识别的数据类型,结合字段名称,动态设定字段类型。

    1)例如:所有的字符串类型可以设定成keyword,或者关闭keyword字段;

    2)例如:凡是Is开头的字段都设置成Boolean;

    3)例如:凡是Long开头的都设置成Long;

    如下图所示:

    

    Dynamic Template是定义在索引的Mappings中的,有一个模板名称,匹配规则是一个数组,同时可以将符合规则的字段进行Mapping。

二、Index Template与Dynamic Template使用

  1、Index Template

    1)通过创建一个dynamic mapping的索引,会发现日期类型推断成功,而数值类型被推断成text类型。

  

    2)创建一个可以识别以test字符开头的索引模板,同时将日期识别设置为false,将数值识别设置为true。会发现日期会推断为text类型,数值类型推断正常。

  

    3)在创建索引时,设置settings的值,会覆盖模板设置信息。

  

  2、Dynamic Template

   创建的索引进行mappings设置

  

  通过对mapping信息的读取可以发现,is开头的字段是boolean类型,duty字段是keyword类型,匹配name开头的字段,将信息可以copy_to到fullname字段中,不匹配middle后缀的字段信息。

  

  当对fullname字段搜索关于middle字段的信息时,搜索不到结果,当搜索first或者lastname时,可以搜索到结果。

  

三、聚合的说明(Aggregation)

  1、ElasticSearch聚合的优势

    1)ElasticSearch除了搜索外,还提供了针对ElasticSearch数据进行统计分析的功能;

    相对于Hadoop而言,ElasticSearch在这方面实时性高,比Hadoop的T+1更及时。

    2)通过聚合,会得到一个数据的概览,这样就可以分析和总结全套的数据,而不是仅仅能寻找单个文档;

    3)易用性,只需要一条语句,就可以从ElasticSearch中得到分析结果,从而避免在客户端实现分析逻辑;

  2、聚合的分类

    1)Bucket Aggregation:一些列满足特定条件的文档集合,其相当于SQL中的Group By;

    2)Metric Aggregation:一些数学运算,可以对文档字段进行统计分析;

      其相当于SQL中对于字段进行运算的函数,如Sum、Count等。它除了可以在字段上进行计算,还可以在脚本产生的结果上进行计算。

      大多数Metric是数学计算,输出一个值,如:min/max/sum/avg/cardinality。

      部分支持输出多个值,如:stats/percentiles/percentile_ranks。

    3)Pipeline Aggregation:对其他的聚合结果进行二次聚合;

    4)Matrix Aggregation:支持对多个字段的操作并提供一个结果矩阵;

  3、聚合的使用

    1)Bucket Aggregation

    

    2)Metric Aggregation

    

    

    注意:在做聚合分析时,应将aggs前面的size设置为0,否则会返回查询结果,而不是聚合结果。如果写成20,聚合结果也能统计出来,只是在查询结果的后面。

    大家可关注我的公众号

     

    知识学习来源:阮一鸣:《Elasticsearch核心技术与实战》

ElasticStack学习(八):ElasticSearch索引模板与聚合分析初探的更多相关文章

  1. Elasticsearch索引模板-转载

    转载地址:https://dongbo0737.github.io/2017/06/13/elasticsearch-template/#similar_posts Elasticsearch索引模板 ...

  2. elasticsearch系列六:聚合分析(聚合分析简介、指标聚合、桶聚合)

    一.聚合分析简介 1. ES聚合分析是什么? 聚合分析是数据库中重要的功能特性,完成对一个查询的数据集中数据的聚合计算,如:找出某字段(或计算表达式的结果)的最大值.最小值,计算和.平均值等.ES作为 ...

  3. ElasticSearch 简单的 搜索 聚合 分析

    一. 搜索1.DSL搜索 全部数据没有任何条件 GET /shop/goods/_search { "query": { "match_all": {} } } ...

  4. Elasticsearch索引模板和别名

    创建模板(模板名和索引名一样都不能有大写) PUT http://222.108.x.x:9200/_template/templateds { "template": " ...

  5. Oracle索引梳理系列(八)- 索引扫描类型及分析(高效索引必备知识)

    版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...

  6. Elasticsearch7.X 入门学习第八课笔记-----索引模板和动态模板

    原文:Elasticsearch7.X 入门学习第八课笔记-----索引模板和动态模板 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接: ...

  7. Elasticsearch学习笔记——索引模板

    在索引模板里面,date类型的字段的format支持多种类型,在es中全部会转换成long类型进行存储,参考 https://zhuanlan.zhihu.com/p/34240906 一个索引模板范 ...

  8. ElasticSearch(六):索引模板

    ElasticSearch(六):索引模板 学习课程链接<Elasticsearch核心技术与实战> Index Template Index Template - 帮助你设定Mappin ...

  9. ES 10 - Elasticsearch的索引别名和索引模板

    目录 1 索引模板概述 1.1 什么是索引模板 1.2 索引模板中的内容 1.3 索引模板的用途 2 创建索引模板 3 查看索引模板 4 删除索引模板 5 模板的使用建议 5.1 一个index中不能 ...

随机推荐

  1. Win10《芒果TV》更新v3.5.2星玥版:修复电视台直播异常,优化添加下载提示

    Win10版<芒果TV>在更新夏至版之后,根据收集到的热心用户反馈,全平台同步更新星玥版v3.5.2,修复电视台直播异常,优化添加下载提示,进一步提升使用体验. Win10版<芒果T ...

  2. SQL Server 命名实例更改端口进行发布订阅

    原文:SQL Server 命名实例更改端口进行发布订阅 两台数据库服务器,都没有加入域,都安装多实例,端口也不一样了.现在使用命名实例进行复制,折腾了好久,才发现解决方法. 服务器A:myserve ...

  3. Advanced Installer 中测试数据库连接提示“未发现数据源名称并且未指定默认驱动程序”的解决办法

    原文:Advanced Installer 中测试数据库连接提示"未发现数据源名称并且未指定默认驱动程序"的解决办法 最近需要制作一个安装包,安装包的要求如下: 1.用户手工填写M ...

  4. Android零基础入门第52节:自定义酷炫进度条

    原文:Android零基础入门第52节:自定义酷炫进度条 Android系统默认的ProgressBar往往都不能满足实际开发需要,一般都会开发者自定义ProgressBar. 在Android开发中 ...

  5. Win10的UWP之标题栏的返回键(二)

    原文:Win10的UWP之标题栏的返回键(二) 关于Win10的UWP的返回键的第二种处理的方法,是介于标题栏的强行修改,不是像上期的那样直接调用系统内置的API. - - - - - - - - - ...

  6. kube框架结构-一个小型响应式CSS框架

    当你开始初建一个新的项目时,你可能需要一个不太复杂的基础框架,Kube框架应该是你最好的选择.一个独立的CSS文件,帮助你更简单的创建响应式的的布局设计. Kube Framework包括网格.按钮. ...

  7. 【数据结构】30、hashmap=》hash 计算方式

    前提知识 写在前面,为什么num&(length - 1) 在length是2的n次幂的时候等价于num%length n - 1意味着比n最高位小的位都为1,而高的位都为0,因此通过与可以剔 ...

  8. Laravel中我们登录服务器通过 Tinker 手动创建后台管理用户

    Laravel中我们可以登录到服务器通过 Tinker 手动创建后台用户 laravel中tinker命令的作用是用来调试laravel,可以打印变量或对象信息,显示函数代码,对数据库写入和查询数据. ...

  9. Adam和学习率衰减(learning learning decay)

    目录 梯度下降法更新参数 Adam 更新参数 Adam + 学习率衰减 Adam 衰减的学习率 References 本文先介绍一般的梯度下降法是如何更新参数的,然后介绍 Adam 如何更新参数,以及 ...

  10. selenium工作原理详解

    selenium简介 Selenium是一个用于Web应用程序自动化测试工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11), ...