ElasticSearch Mapping详解与示例
5星 · 超过95%的资源 159 浏览量
更新于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`设置以保持索引的稳定性和一致性。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-03-16 上传
2023-05-26 上传
2023-07-28 上传
2023-05-27 上传
2023-05-30 上传
2024-03-24 上传
weixin_38660813
- 粉丝: 5
- 资源: 982
最新资源
- 教你怎么写批处理.txt
- C语言 描述 数据采集 程序
- Oracle9i 数据库管理基础 I Ed 1.1 Vol.1
- intel平台的ELF 文件格式
- High.Performance.MySQL_Second.Edition.pdf
- 基于_NET企业信息资源管理系统的设计与实现
- Linux操作系统编程入门
- Ethereal用户手册.pdf
- 基于UDP通信协议的设计与实现
- 红外遥控系统原理及单片机软件解码实例
- 三言两语话Erlang
- java编程入门知识
- NET SQL Server数据访问抽象基础类
- linux 菜鸟过关
- Android 入门教程
- Oracle+9i&10g编程艺术:深入数据库体系结构