1.1 什么是映射

(1) 映射(mapping): 定义index的元数据, 指定要索引并存储的文档的字段类型.

也就是说映射决定了Elasticsearch在建立倒排索引、进行检索时对文档采取的相关策略, 如数字类型、日期类型、文本类型等等.

需要注意的是: 检索时用到的分析策略, 要和建立索引时的分析策略相同, 否则将导致数据不准确.

(2) ES对不同的类型有不同的存储和检索策略.

① 比如: 对full text型的数据类型(如text), 在索引时, 会经过各类处理 (包括分词、normalization(时态转换、同义词转换、大小写转换)等处理), 才会建立到索引数据中.
② 再比如: 对exact value(如date), 在索引的分词阶段, 会将整个value作为一个关键词建立到倒排索引中.

1.2 映射的组成

每个index都有一 (至多) 个type, 每个type对应一个mapping.

在Elasticsearch 6.X版本开始, 1个index只能有1个type.

每个mapping都由下述部分组成:

① 元字段: _index_type_id 和 _source.
② field/properties(字段或属性): 同一index中, 同名的field的映射配置必须相同

a) 因为index是根据_type元字段来区分type的, 也就是存储的每个文档中都有_type等元字段, 如果相同名称的field的映射(_type字段的值)不同, Elasticsearch在解析时就会出现冲突.

b) 这些参数可以例外: copy_to、dynamic、enabled、ignore_above、include_in_all.

关于type的处理方法, 可以参考博客: ES XX - Elasticsearch对type的处理(type的底层结构).

1.3 元字段

每个文档都有与之关联的元数据 —— ES内部为所有的文档配备的field, 都是以下划线_开头的内置字段.

具体的内容请参考博文 ES XX - Elasticsearch的元字段 中详细讲解.

1.4 字段的类型

Elasticsearch中每个field都对应一至多个数据类型.

详细的内容请参考博文 ES XX - Elasticsearch中字段的类型 中详细讲解.

什么是Mapping映射?
映射:创建索引的时候,可以预先定义字段的类型以及相关属性。
作用:这样会让索引建立得更加的细致和完善!
分类:静态映射和动态映射

ElasticSearch在做字段映射的时候可以定义的类型

映射的属性方法

除了定义字段的类型,还可以给字段定义相关的属性

创建mapping

(1) 必读说明:

① 创建mapping时, 可以指定每个field是否需要:

索 引: "index": true —— 默认配置
不索引: "index": false

② mapping root object:

每个type对应的mapping的JSON串, 包括properties, metadata(_id, _source, _type) , settings(analyzer) , 其他settings(如include_in_all)

(2) 创建mapping的示例:

更新mapping

(1) 必读说明:

  • 映射一旦创建完成, 就不允许修改:

    —— Elasticsearch对文档的分析、存储、检索等过程, 都是严格按照mapping中的配置进行的. 如果允许后期修改mapping, 在检索时对索引的处理将存在不一致的情况, 导致数据检索行为不准确.

  • 只能在创建index的时候手动配置mapping, 或者新增field mapping, 但是不能update field mapping.

(2) 更新mapping出现异常:

(3) 过期提示说明 —— 这里使用的是Elasticsearch 6.8.6版本:

① 是否索引的API已经做了修改, 若使用"analyzed" | "not_analyzed" | "yes" | "no"等, 将抛出如下警告:

#! Deprecation: Expected a boolean [true/false] for property [index] but got [not_analyzed]
#! Deprecation: Expected a boolean [true/false] for property [index] but got [no]

② _all元字段也将在7.0版本中移除, 它建议我们使用copy_to定制自己的all field:

#! Deprecation: [_all] is deprecated in 6.0+ and will be removed in 7.0. As a replacement, you can use [copy_to] on mapping fields to create your own catch all field.

在6.8.6版本中我们使用true或false

字段类型的设置,在6.8.6版本中使用text文本类型,不能使用string在过去早期的版本可以使用

所以我们新增一个索引test

ElasticSearch映射Mapping相关推荐

  1. ElasticSearch关于映射mapping介绍

    #首先我们还是先增加几个文档 PUT /myindex/article/1 {"post_date": "2020-03-14","title&quo ...

  2. elasticsearch的映射(mapping)和分析(analysis)

    转发自:http://blog.csdn.net/hzrandd/article/details/47128895 分析和分析器 分析(analysis)是这样一个过程: 首先,表征化一个文本块为适用 ...

  3. ES 11 - 配置Elasticsearch的映射 (mapping)

    目录 1 映射的相关概念 1.1 什么是映射 1.2 映射的组成 1.3 元字段 1.4 字段的类型 2 如何配置mapping 2.1 创建mapping 2.2 更新mapping 2.3 查看m ...

  4. Elasticsearch之Mapping设置详解

    Elasticsearch之Mapping详解 什么是Mapping? 字段的数据类型 Dynamic Mapping ES类型自动识别机制 更新mapping 定义Mapping 1.控制字段是否被 ...

  5. elasticsearch 的mapping定义

    elasticsearch 的mapping 例子一: 订单号 如:ATTS000928732 类型不分词. index: not_analyzed 订单号是全部数据 如: 63745345637 这 ...

  6. elasticsearch中mapping全解实战

    Mapping简介 mapping 是用来定义文档及其字段的存储方式.索引方式的手段,例如利用mapping 来定义以下内容: 哪些字段需要被定义为全文检索类型 哪些字段包含number.date类型 ...

  7. Elasticsearch之mapping映射入门

    10.1. 什么是mapping映射 概念:自动或手动为index中的_doc建立的一种数据结构和相关配置,简称为mapping映射. 插入几条数据,让es自动为我们建立一个索引 PUT /websi ...

  8. elasticsearch映射相关字段定义,属性定义,及动态映射(marvel插件方式)mapping

    1.什么是Mapping映射? 映射:创建索引的时候,可以预先定义字段的类型及相关属性 作用:这样会让索引建立的更加的细致和完善 分类:静态映射和动态映射 Type ES type Descripti ...

  9. Elasticsearch的mapping映射

    前言 参考的es的文档 当前版本7.15 Mapping | Elasticsearch Guide [7.15] | Elastic 可能刚接触es的小白和我一样(我也是小白),映射是个啥玩意,如果 ...

最新文章

  1. Android中removeCallbacks失效原因
  2. linux 安装包 在此作用域中尚未声明_Linux运行go项目报错:copy_file_range: bad file descriptor...
  3. iOS进阶之底层原理-isa与对象
  4. iOS 获取self类型
  5. Microsoft Sync Framework 2.1 软件开发包 (SDK)
  6. VS(C++)配置Halcon(一次配置,永久使用)
  7. codeforces 261 D
  8. [Swift]快速反向平方根 | Fast inverse square root
  9. 特殊构造(非捕获总结)
  10. Mac OS 添加 MySQL 环境变量
  11. CentOS下NTP安装配置
  12. 面试前的准备和注意事项(非常详细)
  13. valine自定义表情正确打开方式
  14. STC12C5A60S2最小系统
  15. Fiddler功能讲解
  16. Chrome 浏览器远程调试
  17. 万豪又双叒叕翻车,520 万人隐私遭曝光
  18. 上传IPA包到App Store​
  19. 毕业季,说一说自己从学生初入职场的感受
  20. 刘诚昊20162316 第一周作业

热门文章

  1. SQL Server 2008R2安装详细教程(附安装包)
  2. php制作学生卡片,PHP基础案例一:展示学生资料卡
  3. navicat er图没有连线_迁徙图?流向图?城市关系强度图?
  4. 脚本自动定时打开链接_自动化构建系统
  5. C++基础08-this指针-const修饰成员函数-函数返回引用/值
  6. java 井字棋 人机_一个井字棋tictactoe游戏的java实现 | Soo Smart!
  7. to_date , to_char
  8. 文件拷贝(字符、字节)
  9. 面向对象初调用:foolish 电梯
  10. atitit.提升开发效率---mda 软件开发方式的革命