首页
学习
活动
专区
圈层
工具
发布

Elasticsearch(二)

接着上一篇继续:Elasticsearch(一)

本篇将会简述 ES 的 Mapping 相关内容。

Mapping

Mapping (映射)在 ES 中的作用至关重要,数据结构、存储和索引规则等等都是通过 mapping 来进行设置的。

Dynamic Mapping (动态映射):

在使用传统关系型数据库如 mysql 时,如果不事先明确定义数据结构是无法进行数据操作的,但是在 ES 中不需要这样,因为 ES 本身会自己去检测数据并给出其数据类型然后进行索引或存储。所以称之为动态映射。

数据类型的判断及定义规则如下:

然而,仅仅依赖于 ES 自身去判断并定义数据类型显然是比较受限的,我们仍然需要对数据类型进行密切关注。

需要注意的是,虽然 mapping 映射是动态的,但这并不意味着我们可以随意的修改它,对于已经存在的 field mapping(字段映射)是无法直接修改的,只能重新索引(reindex),所以我们需要对 mapping 有一个深入的了解。

Field datatypes(字段数据类型):

ES 中的 filed(字段)如同 mysql 表中的列一样,其数据类型也有很多种:

Meta-fields(元字段):

每一个 document 都有一些与之关联的元数据:

Mapping parameters(映射参数):

设置 mapping 时的各种参数及其含义:

Dynamic templates(动态模板):

应用于动态添加字段时设置自定义 mapping 映射,通过在模板中设置匹配及映射的规则,匹配命中则会被设置为对应的 mapping ,匹配参数设置如下:

本篇文章参考官方文档整理了相关的内容。

Mapping 的设置其实是一个不断循环改进的过程,同时其与具体业务又有着密切的联系。理解了 Mapping 更有助于理解数据在 ES 中的搜索行为表现。

下一篇文章将会讲述另一个与 Mapping 息息相关的 Analysis 。

下一篇
举报
领券