news 2026/4/19 13:21:43

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Elasticsearch 索引API:映射(Mapping)操作全流程实战(创建/查看/修改/新增字段)

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

    • 前言
    • 一、核心概念:什么是索引映射(Mapping)?
      • 1.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。

一、核心概念:什么是索引映射(Mapping)?

1.1 定义

索引映射:用于定义索引中字段的名称、数据类型、分词规则、索引规则的JSON结构,是ES实现高效搜索的基础。

1.2 映射核心作用

  1. 定义字段类型(text、keyword、integer、date等)
  2. 设置中文分词器(IK)
  3. 控制字段是否参与搜索
  4. 控制字段是否存储
  5. 提升搜索精度与性能

1.3 索引映射操作流程图

创建索引时定义映射

查看现有映射

新增字段(支持)

修改字段类型(不支持,需重建索引)

关闭动态映射防止脏数据

二、映射常用字段类型(必须掌握)

字段类型用途
text全文检索字段,支持分词(文章、标题、内容)
keyword精确匹配字段,不分词(状态、分类、ID)
integer/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.keyword

3.6 索引API:删除映射(不支持单独删除,需删除索引)

ES不支持直接删除单个字段映射,只能删除整个索引重建

DELETE/user_index

四、重要规则:映射不能修改,只能新增

4.1 禁止操作

已存在的字段,不能修改类型
例如:name从text改为keyword → 报错

4.2 解决方案

  1. 新增字段
  2. 重建索引(reindex)

五、企业级最佳实践

  1. 创建索引时提前定义好映射,不要依赖动态映射
  2. text字段必须搭配keyword子字段,用于排序、聚合
  3. 中文分词字段必须指定ik_max_word
  4. 关闭动态映射dynamic: strict避免脏数据
  5. 不修改旧字段,只新增字段

六、常见问题

6.1 修改字段类型报错

  • 原因:ES不允许修改已有字段映射
  • 解决:新增字段或重建索引

6.2 无法聚合text字段

  • 原因:text不能聚合
  • 解决:增加keyword子字段

6.3 自动生成了错误字段

  • 原因:开启了动态映射
  • 解决:设置dynamic: strict

七、总结

  1. 映射操作全部通过索引API(_mapping)完成
  2. 支持:创建映射、查看映射、新增字段、关闭动态映射
  3. 不支持:修改字段类型、删除单个字段
  4. text + keyword 是企业最常用组合
  5. 严格映射能大幅提升ES稳定性与查询效率

总结

  1. 映射操作核心APIPUT /索引/_mapping
  2. 支持:创建、查看、新增字段
  3. 不支持:修改字段类型、删除字段
  4. 最佳实践:创建索引时定义完整映射 + 严格模式


🌺The End🌺点点关注,收藏不迷路🌺
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/19 13:20:46

ESP32蓝牙音频开发终极指南:从零构建稳定A2DP音乐播放系统

ESP32蓝牙音频开发终极指南:从零构建稳定A2DP音乐播放系统 【免费下载链接】arduino-esp32 Arduino core for the ESP32 项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32 在物联网和智能音频设备快速发展的今天,ESP32凭借其强大…

作者头像 李华
网站建设 2026/4/19 13:20:16

Redis 缓存穿透防护方案

Redis缓存穿透防护方案解析 在分布式系统中,Redis作为高性能缓存被广泛使用,但缓存穿透问题可能导致数据库压力骤增,甚至引发系统崩溃。缓存穿透是指大量请求绕过缓存直接访问数据库,通常由恶意攻击或无效查询引发。本文将介绍几…

作者头像 李华
网站建设 2026/4/19 13:18:53

010、暗网技术基础:Tor、I2P与Freenet架构对比

从一次诡异的网络超时说起 排查一个分布式存储节点的异常时,发现某个欧洲节点的请求延迟曲线呈现奇怪的“双峰分布”——一部分请求稳定在200ms内,另一部分却总是卡在30秒超时边缘。抓包看到TCP握手成功,但TLS协商始终悬在半空。同事随口提了…

作者头像 李华
网站建设 2026/4/19 13:17:52

ExplorerPatcher终极深度解析:Windows系统优化与底层技术架构

ExplorerPatcher终极深度解析:Windows系统优化与底层技术架构 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher ExplorerPatcher作为…

作者头像 李华