ElasticSearch Mapping详解与示例
5星 · 超过95%的资源 157 浏览量
更新于2024-08-29
收藏 440KB PDF 举报
"ElasticSearch Mapping"
在Elasticsearch中,Mapping是一个至关重要的概念,它定义了索引中文档的结构以及字段的数据类型。Mapping允许我们控制数据如何被索引和搜索,从而优化搜索性能和结果准确性。以下是关于Elasticsearch Mapping的详细解释:
一、Mapping介绍
1)什么是Mapping?
在Elasticsearch 7.0版本及以上,Mapping是指文档结构的定义,包括每个字段的名称、数据类型和相关设置。不同于传统的数据库表结构,Elasticsearch的Mapping更加灵活,能够处理各种类型的数据。
2)字段类型
Elasticsearch支持多种字段类型,除了基本的整数、浮点数、字符串和布尔值,还包括IP地址、日期、地理位置等特殊类型。这些丰富的类型让Elasticsearch能处理各种复杂的数据。
3)什么是Dynamic Mapping?
Dynamic Mapping是Elasticsearch的一种特性,当新文档包含未在现有Mapping中定义的字段时,系统会自动为其创建一个默认的Mapping。这使得快速地导入新数据变得简单,但如果不恰当,可能会导致字段类型不匹配或索引问题。
4)Mapping类型的自动识别
Elasticsearch根据字段值自动推断字段类型。例如,数字值将被识别为数值类型,日期字符串将被识别为日期类型。
5)通过设置dynamic控制Dynamic Mapping
可以使用`dynamic`参数来控制动态映射的行为。默认情况下,它是`true`,意味着允许动态映射。设置为`false`则禁止新的字段自动映射,防止数据意外地被错误地索引。
二、Demo
7)常规Mapping添加删除
在示例中,我们创建了一个名为`mapping_test`的索引,并写入了一篇包含`firstName`、`lastName`和`loginDate`字段的文档。接着,通过`GET mapping_test/_mapping`命令查看了Mapping。然后,删除了该索引。
8)dynamic mapping,推断字段的类型
在另一个示例中,我们创建了`mapping_test`索引,并插入包含不同字段的文档。Elasticsearch自动为`uid`(字符串)、`isVip`(布尔值)、`isAdmin`(字符串)、`age`(整数)和`height`(整数)字段创建了Mapping。使用`GET mapping_test/_mapping`查看了动态生成的Mapping。
9)dynamic设置为false情况
当我们将`dynamic`设置为`false`,尝试向索引中添加新的字段`newField`,Elasticsearch不会为这个字段创建Mapping。但是,由于之前`dynamic_mapping_test`的`dynamic`默认为`true`,`newField`在旧文档中依然可以被搜索和出现在`_source`中。
10)dynamic设置为false后的新字段处理
当我们把`dynamic_mapping_test`的`dynamic`设置为`false`,再尝试添加新字段`anotherField`,Elasticsearch不会为其创建Mapping,因此`anotherField`不会被索引,也无法在搜索中使用。
总结来说,Elasticsearch的Mapping提供了强大的灵活性和控制力,可以根据需求精确配置文档结构,同时动态Mapping的特性使得数据导入更加便捷。然而,需要注意动态映射的潜在问题,适时调整`dynamic`设置以保持索引的稳定性和一致性。
2024-03-24 上传
2021-04-01 上传
2023-06-29 上传
2023-03-16 上传
2023-05-26 上传
2023-05-27 上传
2023-07-28 上传
2023-05-30 上传
2023-06-02 上传
weixin_38660813
- 粉丝: 5
- 资源: 982
最新资源
- 新代数控API接口实现CNC数据采集技术解析
- Java版Window任务管理器的设计与实现
- 响应式网页模板及前端源码合集:HTML、CSS、JS与H5
- 可爱贪吃蛇动画特效的Canvas实现教程
- 微信小程序婚礼邀请函教程
- SOCR UCLA WebGis修改:整合世界银行数据
- BUPT计网课程设计:实现具有中继转发功能的DNS服务器
- C# Winform记事本工具开发教程与功能介绍
- 移动端自适应H5网页模板与前端源码包
- Logadm日志管理工具:创建与删除日志条目的详细指南
- 双日记微信小程序开源项目-百度地图集成
- ThreeJS天空盒素材集锦 35+ 优质效果
- 百度地图Java源码深度解析:GoogleDapper中文翻译与应用
- Linux系统调查工具:BashScripts脚本集合
- Kubernetes v1.20 完整二进制安装指南与脚本
- 百度地图开发java源码-KSYMediaPlayerKit_Android库更新与使用说明