当前播放: 21 | Index Template和Dynamic Template
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
第一章:概述 (4讲)
01 | 课程介绍
免费
02 | 内容综述及学习建议
免费
03 | Elasticsearch简介及其发展历史
免费
04 | Elastic Stack家族成员及其应用场景
免费
第二章:安装上手 (4讲)
05 | Elasticsearch的安装与简单配置
免费
06 | Kibana的安装与界面快速浏览
07 | 在Docker容器中运行Elasticsearch Kibana和Cerebro
08 | Logstash安装与导入数据
第三章:Elasticsearch入门 (15讲)
09 | 基本概念:索引、文档和REST API
10 | 基本概念:节点、集群、分片及副本
11 | 文档的基本CRUD与批量操作
12 | 倒排索引介绍
13 | 通过Analyzer进行分词
14 | Search API概览
15 | URI Search详解
16 | Request Body与Query DSL简介
17 | Query String&Simple Query String查询
18 | Dynamic Mapping和常见字段类型
19 | 显式Mapping设置与常见参数介绍
20 | 多字段特性及Mapping中配置自定义Analyzer
21 | Index Template和Dynamic Template
22 | Elasticsearch聚合分析简介
23 | 第一部分总结
第四章:深入搜索 (13讲)
24 | 基于词项和基于全文的搜索
25 | 结构化搜索
26 | 搜索的相关性算分
27 | Query&Filtering与多字符串多字段查询
28 | 单字符串多字段查询:Dis Max Query
29 | 单字符串多字段查询:Multi Match
30 | 多语言及中文分词与检索
31 | Space Jam,一次全文搜索的实例
32 | 使用Search Template和Index Alias查询
33 | 综合排序:Function Score Query优化算分
34 | Term&Phrase Suggester
35 | 自动补全与基于上下文的提示
36 | 配置跨集群搜索
第五章:分布式特性及分布式搜索的机制 (8讲)
37 | 集群分布式模型及选主与脑裂问题
38 | 分片与集群的故障转移
39 | 文档分布式存储
40 | 分片及其生命周期
41 | 剖析分布式查询及相关性算分
42 | 排序及Doc Values&Fielddata
43 | 分页与遍历:From, Size, Search After & Scroll API
44 | 处理并发读写操作
第六章:深入聚合分析 (4讲)
45 | Bucket & Metric聚合分析及嵌套聚合
46 | Pipeline聚合分析
47 | 作用范围与排序
48 | 聚合分析的原理及精准度问题
第七章:数据建模 (7讲)
49 | 对象及Nested对象
50 | 文档的父子关系
51 | Update By Query & Reindex API
52 | Ingest Pipeline & Painless Script
53 | Elasticsearch数据建模实例
54 | Elasticsearch数据建模最佳实践
55 | 第二部分总结回顾
第八章:保护你的数据 (3讲)
56 | 集群身份认证与用户鉴权
57 | 集群内部安全通信
58 | 集群与外部间的安全通信
第九章:水平扩展Elasticsearch集群 (6讲)
59 | 常见的集群部署方式
60 | Hot & Warm架构与Shard Filtering
61 | 分片设计及管理
62 | 如何对集群进行容量规划
63 | 在私有云上管理Elasticsearch集群的一些方法
64 | 在公有云上管理与部署Elasticsearch集群
第十章:生产环境中的集群运维 (10讲)
65 | 生产环境常用配置与上线清单
66 | 监控Elasticsearch集群
67 | 诊断集群的潜在问题
68 | 解决集群Yellow与Red的问题
69 | 提升集群写性能
70 | 提升进群读性能
71 | 集群压力测试
72 | 段合并优化及注意事项
73 | 缓存及使用Breaker限制内存使用
74 | 一些运维的相关建议
第十一章:索引生命周期管理 (2讲)
75 | 使用Shrink与Rollover API有效管理时间序列索引
76 | 索引全生命周期管理及工具介绍
第十二章:用Logstash和Beats构建数据管道 (3讲)
77 | Logstash入门及架构介绍
78 | 利用JDBC插件导入数据到Elasticsearch
79 | Beats介绍
第十三章:用Kibana进行数据可视化分析 (4讲)
80 | 使用Index Pattern配置数据
81 | 使用Kibana Discover探索数据
82 | 基本可视化组件介绍
83 | 构建Dashboard
第十四章:探索X-Pack套件 (6讲)
84 | 用Monitoring和Alerting监控Elasticsearch集群
85 | 用APM进行程序性能监控
86 | 用机器学习实现时序数据的异常检测(上)
87 | 用机器学习实现时序数据的异常检测(下)
88 | 用ELK进行日志管理
89 | 用Canvas做数据演示
实战1:电影搜索服务 (3讲)
90 | 项目需求分析及架构设计
91 | 将电影数据导入Elasticsearch
92 | 搭建你的电影搜索服务
实战2:Stackoverflow用户调查问卷分析 (3讲)
93 | 需求分析及架构设计
94 | 数据Extract & Enrichment
95 | 构建Insights Dashboard
备战:Elastic认证 (5讲)
96 | Elastic认证介绍
97 | 考点梳理
98 | 集群数据备份
99 | 基于Java和Elasticseach构建应用
100 | 结束语
21 | Index Template和Dynamic Template

21 | Index Template和Dynamic Template

阮一鸣
eBay Pronto平台技术负责人
100讲 约1000分钟18141
单独订阅¥129
2人成团¥99
8
登录 后留言

精选留言(12)

  • 石头剪刀布
    Index Template的应用是在自动创建索引的时候。
    https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-index_.html#index-creation
    所以如果是自己预先创建索引而不使用ES的自动创建索引,Index Template就不会生效。并不是老师所说的会被自己定义的mapping覆盖哟~

    作者回复: 我说的没有错。你可以设置一个template,然后自己写一个mapping,override部分设置。然后写入一个文档后,查看一下实际的mapping和setting

    2019-08-29
    3
  • keke080525
    有没有谁遇到kibana的console光标定位不准确的问题,想要选择的单词总是选择不上,编辑东西很痛苦
    2019-08-27
    1
    2
  • 常利
    你好,老师
    我有两个ES 集群, 分别是6.6.1 和6.7.1, 使用下面的template, 在6.7.1上面, 字符型的字段如 action可以searchable 和aggregatable; 但是在6.6.1上面,字符型的字段不能searchable 和aggregatabl, 但是在新建了一个 action.keyword, 可以searchable 和aggregatable.

    请问我需要在6.6.1上作怎样的设置才能让字段本身可以searchable 和aggregatable?

      "mappings": {
        "_default_": {
          "dynamic": true,
          "dynamic_templates": [
            {
              "string_fields": {
                "mapping": {
                  "type": "keyword"
                },
                "match_mapping_type": "string",
                "match": "*"
              }
            }
          ],
        }
      }

    作者回复: text和keyword都支持搜索和聚合。

    text类型如果要支持聚合,需要吧fielddata设置成true。

    2019-07-14
    2
  • gongxt
    比如说我创建了一个3节点的集群,然后副本设置为5,es的这个副本也是分到3个节点中吗,不关心节点的数量?

    作者回复: 副本会确保和主分片不分配在一个节点上。如果节点过少,副本过多,会导致副本分片无法分配,集群变黄。

    2019-07-10
    2
    2
  • 小鱼
    index template的工作方式中的第一条是应用elasticsearch默认的settings和mappings,请问这里默认的settings和mappings是怎么查看其默认值并对其设定的?

    作者回复: 你如果写一个匹配*的template,那就会overwrite掉默认值。如果没有任何template,你创建一个索引,不设置settings。然后通过查看其setteings,得到的就是系统的默认设定值

    2019-07-09
    3
    2
  • 金多安
    老师,es的mapping操作和logstash的grok有什么区别呢?在现实是使用是否有场景的特殊性?

    作者回复: mapping定义索引的字段类型和分词。
    grok解析日志数据,只要是在写入之前的一些数据抽取转换

    2019-07-10
    1
  • morningglory
    full_name字段是怎么来的啊?
    2019-10-19
  • 聂成阳
    老师,如何按天创建索引

    作者回复: 创建时 索引名字中带上时间信息。你也可以使用es的math函数,创建出带日期信息的索引名字。在后续的时间序列索引的章节有相关demo

    2019-10-08
  • godtrue
    Index Template 和 Dynamic Template 目前没用过,我的理解就是能定制化一些Mapping设置,你设置了就用你设置的(前提是能匹配上)否则就有系统默认的。
    需要标准化管理的可以尝试,这样能规范化且减少沟通和管理成本。
    2019-09-19
  • Sunqc
    "mappings":{
        "dynamic_templates":[
          {
            "string_as_boolean":{
              "match":"is*",
              "match_mapping_type":"string",
              "mapping":{
                "type":"boolean"
              }
            }
          },
          {
            "string_as_keyword":{
              "match_mapping_type":"string",
              "mapping":{
                "type":"keyword"
              }
            }
          }
        ]
      }

    =================
    老师,貌似以前的版本mapping中的type也是string吧,现在都是text了,是吗?
    match_mapping_type类型为string,这个string是应该和mapping中的text不是一回事吧,
    还有 index template 是站在全局的,设置settings,或者其他的一些设置比如date_detection,而dynamic template是针对具体某个索引的 ,这样理解对吗
    2019-07-27
  • 暖色浮余生
    PUT my_index2
    {
      "mappings": {
        "dynamic_date_formats": [
            {
              "full_name" : {
                "path_match" : "name.*",
                "path_unmatch" : "*.middle",
                "mapping" : {
                  "type": "text",
                  "copy_to" : "full_name"
                }
              }
            }
          ]
      }
    }
    报错:

    暖色浮余生 2019/7/15 16:14:07
    {
      "error": {
        "root_cause": [
          {
            "type": "mapper_parsing_exception",
            "reason": "Failed to parse mapping [_doc]: Invalid format: [{full_name={path_match=name.*, path_unmatch=*.middle, mapping={copy_to=full_name, type=text}}}]: expected string value"
          }
        ],
        "type": "mapper_parsing_exception",
        "reason": "Failed to parse mapping [_doc]: Invalid format: [{full_name={path_match=name.*, path_unmatch=*.middle, mapping={copy_to=full_name, type=text}}}]: expected string value",
        "caused_by": {
          "type": "illegal_argument_exception",
          "reason": "Invalid format: [{full_name={path_match=name.*, path_unmatch=*.middle, mapping={copy_to=full_name, type=text}}}]: expected string value"
        }
      },
      "status": 400
    }
    我仔细检查了下json 好像是没有有问题的。实在不知道问题了。麻烦老师了

    作者回复: mappings下面,应该写 dynamic_templates
    你自己写了个名字“dynamic_date_formats”

    参考下面这个
    PUT my_index2/
    {
      "mappings": {
        "dynamic_templates": [
            {
              "full_name" : {
                "path_match":"name.*",
                "path_unmatch":"*.middle",
                "mapping" : {
                  "type":"text",
                  "copy_to":"full_name"
                }
              }
            }
          ]
      }
    }


    2019-07-15
    2
  • 厚助信息
    老师,es 需要对index进行分片吗,像mysql一样,按照一定的逻辑横向切分,如果需要,单索引数据量达到多少后需要考虑分片

    作者回复: 会。分片大小控制在30g到100g之间比较好

    2019-07-10
    3
收起评论
看过的人还看
MySQL实战45讲

林晓斌  网名丁奇,前阿里资深技术专家

48讲 | 46991 人已学习

拼团 ¥79 原价 ¥99
Kafka核心技术与实战

胡夕  人人贷计算平台部总监,Apache Kafka Contributor

46讲 | 9276 人已学习

拼团 ¥79 原价 ¥99
从0开始学架构

李运华  资深技术专家

59讲 | 39988 人已学习

拼团 ¥79 原价 ¥99
数据结构与算法之美

王争  前Google工程师

79讲 | 75599 人已学习

拼团 ¥79 原价 ¥99