【Elasticsearch 入门公开课】如何配置 ES-Mapping/Analyzer 及多种聚合分析介绍-回顾篇(5)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 本周课程(19~22讲)阮一鸣老师详细的讲解如何设置Elasticsearch Mapping,并通过配置 Mapping 实现自定义Analyzer,同时运用 Index Template 和 Dynamic Template 更方便的设计Mapping 索引,还简单介绍了 Elasticsearch 多种聚合分析方式。

简介:本周课程(19~22讲)阮一鸣老师详细的讲解如何设置Elasticsearch Mapping,并通过配置 Mapping 实现自定义Analyzer,同时运用 Index Template 和 Dynamic Template 更方便的设计Mapping 索引,还简单介绍了 Elasticsearch 多种聚合分析方式。

讲师:阮一鸣——eBay Pronto 平台技术负责人、极客时间『Elasticsearch 核心技术与实战』课程讲师
课程为了更多同学能快速体验 Elasticsearch,为大家提供了免费的阿里云 Elasticsearch (3节点1核2G)的测试环境>>>>去开通

image.png

课程回顾

19 | 显式Mapping设置与常见参数介绍
20 | 多字段特性及Mapping中配置自定义Analyzer
21 | Index Template和Dynamic Template
22 | Elasticsearch聚合分析简介

知识点 1 :显式Mapping设置与常见参数介绍


如何显示定义一个 Mapping

定义 Mapping 仅需调用“PUT”的索引文字,就可以创建,同时加上 Mapping 定义文字,是一个 Jason 格式。

image.png

自定义 Mapping 的一些建议

1、可以参考 API 手册,纯手写
2、通过以下步骤可减少输入工作量、减少出错率
• 创建一个临时的 index,写入一些样本数据
• 通过访问 Mapping API 获得该临时文件的动态 Mapping 定义
• 修改后用,使用该配置创建你的索引
• 删除临时索引

自定义 Mapping 优势

1、通过Index--控制当前字段是否被索引,默认为 true ,设置为 “false”,该字段不可被搜索,且节约存储开销

image.png

2、倒排索引(Index Options)创建,有四种不同级别配置,除了“Text”类型默认记录“postions”,其他默认为 “docs”,记录内容越多,占用存储越多

image.png

3、当你需要对“null—value”实现搜索,只需在 Mapping 文件中,对“null-value”指定为你需要的值

image.png

4、由于“_ all”在7.0版本中已被取消,要实现这个功能我们可以用“copy_to”来实现

image.png

“copy_to ”将字段数字拷贝到目标字段,实现类似“_all”的作用

“copy_to ”的目标字段不出现在“_source”中

数组类型

Elasticsearch 中不提供专门的数组类型,但任何字段,都可以包含多个相同类型的数值。

image.png

知识点 2 :多字段特性及Mapping中配置自定义Analyzer


多字段特性

1、当我们为索引设置 Mapping 文件时,我们可以为字段增加一个子字段,如在默认情况下,“Text”ES都会有一个默认的“keyword”字段,

2、使用不同的 analyzer ,实现不同语言进行分词,如英文;以 “pinyin”方式搜索,还支持为搜索和索引指定不同的 analyzer。

image.png

精确值和全文本比较

精确值:包括数字/日期/具体一个字符串(如“Apple Stroe”)
在ES 中,该类指以“keyword”来表示,不做分词处理。

image.png

全文本:非结构化的文本数据。
在ES 中,该类指定为“Text”需要进行分词处理。

image.png

自定义分词

当 Elasticsearch 自带分词无法满足时,可以自定义分词器,通过自祝贺不同的组件实现。

Character Filter

① 在Tokenizer 之前对文本进行处理,例如增加删除及替换字符。可以配置多个 Character Filters。会影响 Tokenizer 的 position 和offset 信息。
② 一些自带的 Character Filters

HTML strip— 去除HTML标签

Mapping — 字符串替换
Pattern replace — 正则匹配替换

Tokenizer
① 将原始文本按照一定规则,切分为 term or token
② Elasticsearch 内置的 Tokenizers

whitespace/standard/uax_url_email/pattern/keyword/path hierarchy

③ 可以用 Java 开发插件,实现自己的 Tokenizer

Token Filter
① 将 Tokenizer 输出的单词(term),进行增加、修改、删除
② Elasticsearch 自带的 Token Filters

Lowercase/stop/synonym(添加近义词)

设置一个 Custom Analyzer

当 Elasticsearch 以上的分词无法满足需求,在创建索引时,可以自定义自己的 Custom Analyzer
image.png

知识点 3 :Index Template 和 Dynamic Template


在业务进行中,集群上会有越来越多的索引,如果你是做日志管理,你会为你的日志每天创建一个索引,因为这样可以更好的管理你的数据,并提高性能。

Index Template

按照一定规则,自动匹配到新创建的索引上,设定 Mapping 和 Setting

① 模板会在一个新创建索引时产生作用,修改模板不会影响已创建的模板
② 设定多个索引模板,这些设置会被“merge”在一起
③ 可以指定“order”设置,控制“merging”的过程

image.png

Index Template 工作方式

当一个索引被创建时
① 应用 Elasticsearch 默认的 settings 和 mappings
② 应用 order 数值低的 Index Template 中的设定
③ 应用 order 高的 Index Template 中的设定,之前的设定会被覆盖
④ 应用创建索引是,用户所指定的 Settings 和Mappings,并覆盖之前模板中的设定。

什么是 Dynamic Template

应用在具体的索引上,根据 Elasticsearch 识别的数据类型,结合字段名称,来动态设定字段类型

①可以实现所有字符串类型设定为“keyword”或者关闭“keyword”字段
②“is”开通的字段设置成“boolean”
③“long_”开头的都设置成“long”类型

image.png

1、设定在某个索引的 Mapping 中

2、设定一个 Template 名称
3、设定匹配规格数组
4、设定匹配到字段 设置 Mapping

匹配规则参数

① match_mapping_type:匹配自动识别的字段类型,如string,boolean等
② match,unmatch:匹配字段名
③ path_match,path_unmatch

image.png

知识点 4 :Elasticsearch聚合分析简介


什么是聚合(Aggregation)

Elasticsearch除搜索以外,同时提供统计分析功能,具有实时性高,同样的功能Hadoop上需要多出一天时间。通过聚合,可以帮助我们得到数据概览。
① 高性能
② 无需客户端自己去实现分析逻辑。

image.png

Kibana 可视化报表-聚合分析

Kibana 报表也是用 Elasticsearch 聚合分析实现的。

image.png

聚合的分类,共分为 4 大类

一、Bucket Aggregation:一些列把满足特东条件的文档聚合

image.png

二、Metric Aggregation:一些数字运算,可以对文档字段进行统计分析

①Metric 会基于数据集计算结果,除了支持在字段上进行计算,同样也支持在脚本(painless script)产生的结果之上进行计算
②大多数 Metric 是数据计算,仅输出一个值
③部分 Metric 支持输出多个数值

举个例子(Bucket & Metric)
image.png

Bucket Aggregation
image.png

加入 Metrics
image.png

嵌套Aggregation

image.png

三、Pipeline Aggregation:对其他的聚合结果进行二次聚合

四、Matix Aggregation:支持对多个字段的操作并提供一个结果矩阵

下周课程预告


点击预约课程
23 | 入门课程总结

相关活动


更多折扣活动,请访问阿里云 Elasticsearch 官网

• 阿里云 Elasticsearch 商业通用版,1核2G首月免费
阿里云 Elasticsearch 日志增强版,首月六折,年付六折
阿里云 Logstash 2核4G首月免费


image.png

image.png

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
1月前
|
存储 Java API
Elasticsearch 7.8.0从入门到精通
这篇文章详细介绍了Elasticsearch 7.8.0的安装、核心概念(如正排索引和倒排索引)、RESTful风格、各种索引和文档操作、条件查询、聚合查询以及在Spring Boot中整合Elasticsearch的步骤和示例。
120 1
Elasticsearch 7.8.0从入门到精通
|
2月前
|
数据可视化 Java Windows
Elasticsearch入门-环境安装ES和Kibana以及ES-Head可视化插件和浏览器插件es-client
本文介绍了如何在Windows环境下安装Elasticsearch(ES)、Elasticsearch Head可视化插件和Kibana,以及如何配置ES的跨域问题,确保Kibana能够连接到ES集群,并提供了安装过程中可能遇到的问题及其解决方案。
Elasticsearch入门-环境安装ES和Kibana以及ES-Head可视化插件和浏览器插件es-client
|
2月前
|
存储 关系型数据库 MySQL
浅谈Elasticsearch的入门与实践
本文主要围绕ES核心特性:分布式存储特性和分析检索能力,介绍了概念、原理与实践案例,希望让读者快速理解ES的核心特性与应用场景。
|
10天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
25 5
|
13天前
|
存储 SQL 监控
|
13天前
|
运维 监控 安全
|
1月前
|
运维 监控 数据可视化
大数据-171 Elasticsearch ES-Head 与 Kibana 配置 使用 测试
大数据-171 Elasticsearch ES-Head 与 Kibana 配置 使用 测试
63 1
|
2月前
|
存储 缓存 自然语言处理
深度解析ElasticSearch:构建高效搜索与分析的基石
【9月更文挑战第8天】在数据爆炸的时代,如何快速、准确地从海量数据中检索出有价值的信息成为了企业面临的重要挑战。ElasticSearch,作为一款基于Lucene的开源分布式搜索和分析引擎,凭借其强大的实时搜索、分析和扩展能力,成为了众多企业的首选。本文将深入解析ElasticSearch的核心原理、架构设计及优化实践,帮助读者全面理解这一强大的工具。
179 7
|
2月前
|
存储 自然语言处理 关系型数据库
ElasticSearch基础3——聚合、补全、集群。黑马旅游检索高亮+自定义分词器+自动补全+前后端消息同步
聚合、补全、RabbitMQ消息同步、集群、脑裂问题、集群分布式存储、黑马旅游实现过滤和搜索补全功能
ElasticSearch基础3——聚合、补全、集群。黑马旅游检索高亮+自定义分词器+自动补全+前后端消息同步
|
1月前
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
117 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。

相关产品

  • 检索分析服务 Elasticsearch版