Mapping 与文本分析是 Easysearch 搜索能力的两大基石。本章为功能手册 - 实践应用部分。
📚 基础理论优先:请先阅读 Mapping 与文本分析,了解基本概念和工作原理。
本章内容导航 #
推荐学习路径 #
🚀 快速入门 #
第一次使用 Mapping 与文本分析:
- 基础理论 → 理解精确值 vs 全文、分析器三步处理
- Mapping 基础(深入) → text/keyword 选择、动态映射陷阱
- 文本分析 → 语言分析器选择与配置
- 字段类型 → 查阅具体参数
🔍 搜索质量优化 #
遇到召回率或相关性问题:
🏗️ 生产索引设计 #
规划和优化生产环境索引:
- Mapping 模式与最佳实践 → 避免常见陷阱、多字段策略
- 映射参数 → 精细控制字段行为(doc_values、fielddata 等)
- 向量字段建模 → 语义搜索场景
核心概念速查 #
| 概念 | 说明 | 典型场景 |
|---|---|---|
text 类型 | 全文检索字段,索引时分词 | 标题、正文、评论 |
keyword 类型 | 精确值字段,不分词 | ID、状态、标签、枚举 |
| 分析器 | 字符过滤 → 分词 → Token 过滤的组合 | 控制文本如何被处理 |
| 多字段 | 同一数据以多种方式索引 | title(text) + title.keyword(keyword) |
| 动态映射 | 自动推断新字段类型 | 快速原型,生产环境需显式映射 |
_source | 存储原始 JSON 文档 | 返回文档、reindex 操作 |
常见问题 #
Q: 为什么搜索 “iPhone” 找不到 “iphone”?
→ 检查字段是否为 keyword(不分词),或分析器是否缺少 lowercase 过滤器
Q: 为什么搜索 “跑步” 找不到 “跑” 的文档? → 检查分词器,中文需要专门分词器(IK、Jieba 等)
Q: text 和 keyword 应该选哪个?
→ 需要全文搜索用 text;需要精确过滤/排序/聚合用 keyword;两者都需要用多字段
Q: 修改分析器后为什么不生效? → 已索引数据需要重建索引才能应用新的分析器配置