Elasticsearch 索引API:映射(Mapping)操作全流程实战(创建/查看/修改/新增字段)

张开发
2026/4/19 13:21:45 15 分钟阅读

分享文章

Elasticsearch 索引API:映射(Mapping)操作全流程实战(创建/查看/修改/新增字段)
Elasticsearch 索引API映射Mapping操作全流程实战创建/查看/修改/新增字段前言一、核心概念什么是索引映射Mapping1.1 定义1.2 映射核心作用1.3 索引映射操作流程图二、映射常用字段类型必须掌握三、索引API映射操作全实战3.1 索引API创建索引时定义映射推荐3.2 索引API查看索引现有映射3.3 索引API给索引新增字段支持动态添加3.4 索引API关闭动态映射防止自动生成错误字段3.5 索引API给text类型字段设置keyword子字段常用3.6 索引API删除映射不支持单独删除需删除索引四、重要规则映射不能修改只能新增4.1 禁止操作4.2 解决方案五、企业级最佳实践六、常见问题6.1 修改字段类型报错6.2 无法聚合text字段6.3 自动生成了错误字段七、总结总结The Begin点点关注收藏不迷路前言在 Elasticsearch 中映射Mapping是索引的核心结构相当于数据库的表结构定义用于指定字段类型、分词器、是否索引、是否存储等规则。索引API是操作映射的唯一入口所有映射相关操作都必须通过索引API完成。本文详细讲解如何使用索引API进行索引的映射操作包含创建映射、查看映射、新增字段、更新字段、动态映射关闭等全场景实战附带流程图、标准标题、可直接运行的DSL适用于ES 7.x/8.x全版本可直接发布CSDN。一、核心概念什么是索引映射Mapping1.1 定义索引映射用于定义索引中字段的名称、数据类型、分词规则、索引规则的JSON结构是ES实现高效搜索的基础。1.2 映射核心作用定义字段类型text、keyword、integer、date等设置中文分词器IK控制字段是否参与搜索控制字段是否存储提升搜索精度与性能1.3 索引映射操作流程图创建索引时定义映射查看现有映射新增字段支持修改字段类型不支持需重建索引关闭动态映射防止脏数据二、映射常用字段类型必须掌握字段类型用途text全文检索字段支持分词文章、标题、内容keyword精确匹配字段不分词状态、分类、IDinteger/long数字类型date日期类型boolean布尔类型object对象类型三、索引API映射操作全实战3.1 索引API创建索引时定义映射推荐功能创建索引的同时直接定义字段映射结构PUT/user_index{settings:{number_of_shards:1,number_of_replicas:0},mappings:{properties:{name:{type:text,analyzer:ik_max_word},age:{type:integer},phone:{type:keyword},create_time:{type:date}}}}3.2 索引API查看索引现有映射功能查看指定索引的字段类型、分词器、配置信息GET/user_index/_mapping返回结果包含所有字段的完整映射定义。3.3 索引API给索引新增字段支持动态添加功能在已有索引中新增字段ES允许随时新增字段PUT/user_index/_mapping{properties:{email:{type:keyword},address:{type:text,analyzer:ik_smart}}}3.4 索引API关闭动态映射防止自动生成错误字段功能禁止ES自动识别字段类型避免脏数据PUT/user_index{mappings:{dynamic:strict,// 严格模式遇到未知字段直接报错properties:{name:{type:text}}}}dynamic可选值true默认自动创建字段false不创建但存储数据strict严格模式报错拒绝写入3.5 索引API给text类型字段设置keyword子字段常用功能一个字段既支持分词搜索又支持精确聚合PUT/article_index{mappings:{properties:{title:{type:text,analyzer:ik_max_word,fields:{keyword:{type:keyword,ignore_above:256}}}}}}使用搜索title聚合/排序title.keyword3.6 索引API删除映射不支持单独删除需删除索引ES不支持直接删除单个字段映射只能删除整个索引重建DELETE/user_index四、重要规则映射不能修改只能新增4.1 禁止操作已存在的字段不能修改类型例如name从text改为keyword → 报错4.2 解决方案新增字段重建索引reindex五、企业级最佳实践创建索引时提前定义好映射不要依赖动态映射text字段必须搭配keyword子字段用于排序、聚合中文分词字段必须指定ik_max_word关闭动态映射dynamic: strict避免脏数据不修改旧字段只新增字段六、常见问题6.1 修改字段类型报错原因ES不允许修改已有字段映射解决新增字段或重建索引6.2 无法聚合text字段原因text不能聚合解决增加keyword子字段6.3 自动生成了错误字段原因开启了动态映射解决设置dynamic: strict七、总结映射操作全部通过索引API_mapping完成支持创建映射、查看映射、新增字段、关闭动态映射不支持修改字段类型、删除单个字段text keyword 是企业最常用组合严格映射能大幅提升ES稳定性与查询效率总结映射操作核心APIPUT /索引/_mapping支持创建、查看、新增字段不支持修改字段类型、删除字段最佳实践创建索引时定义完整映射 严格模式The End点点关注收藏不迷路

更多文章