ElasticSearch映射Mapping
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相关推荐
- ElasticSearch关于映射mapping介绍
#首先我们还是先增加几个文档 PUT /myindex/article/1 {"post_date": "2020-03-14","title&quo ...
- elasticsearch的映射(mapping)和分析(analysis)
转发自:http://blog.csdn.net/hzrandd/article/details/47128895 分析和分析器 分析(analysis)是这样一个过程: 首先,表征化一个文本块为适用 ...
- ES 11 - 配置Elasticsearch的映射 (mapping)
目录 1 映射的相关概念 1.1 什么是映射 1.2 映射的组成 1.3 元字段 1.4 字段的类型 2 如何配置mapping 2.1 创建mapping 2.2 更新mapping 2.3 查看m ...
- Elasticsearch之Mapping设置详解
Elasticsearch之Mapping详解 什么是Mapping? 字段的数据类型 Dynamic Mapping ES类型自动识别机制 更新mapping 定义Mapping 1.控制字段是否被 ...
- elasticsearch 的mapping定义
elasticsearch 的mapping 例子一: 订单号 如:ATTS000928732 类型不分词. index: not_analyzed 订单号是全部数据 如: 63745345637 这 ...
- elasticsearch中mapping全解实战
Mapping简介 mapping 是用来定义文档及其字段的存储方式.索引方式的手段,例如利用mapping 来定义以下内容: 哪些字段需要被定义为全文检索类型 哪些字段包含number.date类型 ...
- Elasticsearch之mapping映射入门
10.1. 什么是mapping映射 概念:自动或手动为index中的_doc建立的一种数据结构和相关配置,简称为mapping映射. 插入几条数据,让es自动为我们建立一个索引 PUT /websi ...
- elasticsearch映射相关字段定义,属性定义,及动态映射(marvel插件方式)mapping
1.什么是Mapping映射? 映射:创建索引的时候,可以预先定义字段的类型及相关属性 作用:这样会让索引建立的更加的细致和完善 分类:静态映射和动态映射 Type ES type Descripti ...
- Elasticsearch的mapping映射
前言 参考的es的文档 当前版本7.15 Mapping | Elasticsearch Guide [7.15] | Elastic 可能刚接触es的小白和我一样(我也是小白),映射是个啥玩意,如果 ...
最新文章
- Android中removeCallbacks失效原因
- linux 安装包 在此作用域中尚未声明_Linux运行go项目报错:copy_file_range: bad file descriptor...
- iOS进阶之底层原理-isa与对象
- iOS 获取self类型
- Microsoft Sync Framework 2.1 软件开发包 (SDK)
- VS(C++)配置Halcon(一次配置,永久使用)
- codeforces 261 D
- [Swift]快速反向平方根 | Fast inverse square root
- 特殊构造(非捕获总结)
- Mac OS 添加 MySQL 环境变量
- CentOS下NTP安装配置
- 面试前的准备和注意事项(非常详细)
- valine自定义表情正确打开方式
- STC12C5A60S2最小系统
- Fiddler功能讲解
- Chrome 浏览器远程调试
- 万豪又双叒叕翻车,520 万人隐私遭曝光
- 上传IPA包到App Store​
- 毕业季,说一说自己从学生初入职场的感受
- 刘诚昊20162316 第一周作业
热门文章
- SQL Server 2008R2安装详细教程(附安装包)
- php制作学生卡片,PHP基础案例一:展示学生资料卡
- navicat er图没有连线_迁徙图?流向图?城市关系强度图?
- 脚本自动定时打开链接_自动化构建系统
- C++基础08-this指针-const修饰成员函数-函数返回引用/值
- java 井字棋 人机_一个井字棋tictactoe游戏的java实现 | Soo Smart!
- to_date , to_char
- 文件拷贝(字符、字节)
- 面向对象初调用:foolish 电梯
- atitit.提升开发效率---mda 软件开发方式的革命