搜索引擎映射
Mapping 是什么?
字段类型和分词方式的定义,决定数据怎么被检索
类比:图书馆的分类规则,决定书怎么上架
它是什么
Mapping 定义每个字段的类型(text、keyword、date、long、nested…)以及 text 字段用哪个分词器。类型一旦写入数据就基本不能改,改要 reindex。
text vs keyword
这是最常搞混的一对,选错会导致聚合失败或搜不到。
- text:分词后可全文检索,不能直接聚合和排序
- keyword:不分词,适合精确匹配、聚合、排序(如订单号、状态)
- 常用做法:一个字段同时定义 text(检索)+ keyword 子字段(聚合)
动态映射的坑
默认开启动态映射,第一条数据里的 "123" 会被推断成 long,之后真的传字符串就报错;日期格式猜错也很常见。生产环境建议关闭动态映射,显式定义字段。