Elasticsearch搜索分析设计

👤 Adodo 📦 v1.0.1 ⭐ 4.6 ⬇️ 207 下载
💻 开发编程 免费

📖 技能介绍


name: elasticsearch-design description: 帮助Agent为项目进行Elasticsearch索引设计、Mapping设计、搜索查询设计,并提供场景化使用指南。当用户需要设计搜索引擎Schema、优化全文搜索、规划日志/APM/向量搜索方案时触发。 version: 1.0.1 metadata: clawdbot: emoji: "🔍" requires: anyBins: ["elasticsearch"] os: ["linux", "darwin"]


Elasticsearch 设计与使用助手

触发条件

当用户出现以下意图时激活本 Skill: - 设计 Elasticsearch 索引 / Mapping - 全文搜索 / 向量搜索方案 - 日志分析 / APM 数据建模 - 索引模板 / ILM 生命周期设计 - 搜索性能优化 - "如何设计 xxx 的搜索"

设计流程(Agent 执行路径)

0. 版本检查 → 加载 references/version-major.md 对比用户版本,识别废弃项和重大变更。同时加载所有 version-X.Y.md(X.Y ≤ 用户目标版本),后续设计过程中 Agent 从已加载的上下文中自主匹配深度特性
1. 需求分析 → 理解搜索场景(全文/向量/混合/聚合)、写入吞吐、数据量级
2. 索引设计 → 索引命名、分片数/副本数、刷新间隔、ILM 策略
3. Mapping 设计 → 字段类型、分词器、动态模板、运行时字段
4. 查询设计 → Query DSL / ES|QL / 混合搜索(BM25 + kNN)
5. 写入设计 → 批量写入、管道预处理、别名切换
6. 使用指引 → 加载 references/usage-guide.md,给出场景化操作
7. 生产建议 → 加载 references/best-practices.md,给出集群/高可用/监控建议
8. 模板参考 → 加载 references/patterns.md,匹配业务索引模板

快速参考

索引命名铁律

规则 示例 反例
格式:<项目>-<数据类型>-<时间粒度> app-logs-2026.06 logs
小写+连字符 ecom-products-v1 ecom_Products_V1
按时间滚动必须带日期后缀 metrics-system-2026.06.09 固定索引名
版本后缀(别名指向当前版本) search-products-v2(别名 search-products 别名混乱

分片设计速查

维度 推荐值 说明
主分片数 1(优先按单分片 10-50GB 计算) 分片数过多导致开销,过少限制并行度
单分片大小 10-50GB 超过 50GB 考虑拆分索引或增加分片
副本数 1(生产)/ 0(开发) 至少 1 个副本保高可用
每 GB 堆的分片数 ≤ 20 每个节点不超过 1000 个分片

核心字段类型速查

类型 使用场景 Mapping 示例
text 全文搜索(会分词) "type": "text", "analyzer": "ik_max_word"
keyword 精确匹配/聚合/排序 "type": "keyword"
long / integer 整数 "type": "long"
float / double / scaled_float 小数;金额用 scaled_float "type": "scaled_float", "scaling_factor": 100
boolean 布尔值 "type": "boolean"
date 时间(ISO 8601 / epoch) "type": "date", "format": "yyyy-MM-dd HH:mm:ss"
geo_point 经纬度坐标 "type": "geo_point"
dense_vector 向量嵌入(kNN 搜索) "type": "dense_vector", "dims": 1536, "index": true
object 嵌套 JSON 对象 "type": "object"
nested 独立索引的对象数组 "type": "nested"
ip IP 地址 "type": "ip"
binary Base64 二进制 "type": "binary"

Mapping 设计原则

原则 说明
禁止动态 Mapping 到生产 "dynamic": "strict""runtime"
字符串双字段 需要搜索+聚合时为 text+keyword;纯 ID/枚举用 keyword
关闭不必要的 norms/index "norms": false"index": false 减少存储
避免 field explosion flattened 类型处理高基数不可预知的 Key
运行时字段替代 Script runtime_mappings 定义计算字段,不占存储

分词器选型

语言/场景 分词器 说明
中文 ik_max_word(索引)/ ik_smart(搜索) 需安装 IK 插件
英文 standard / english 内置
多语言 独立字段 + 不同分词器 每个语言一个 text 子字段
拼音搜索 pinyin 插件 中文拼音混合搜索
不分词 keyword 类型 精确匹配用

渐进式加载

详细内容按需加载 references/:

主题 文件 何时加载
索引/Mapping/字段/分词设计规范 references/design-spec.md Step 2-3 索引和 Mapping 设计
场景化操作(创建索引/搜索/聚合/别名/ILM) references/usage-guide.md Step 6 使用指引
最佳实践(分片/集群/写入/查询/监控/运维) references/best-practices.md Step 7 生产建议
业务索引模板(6类业务完整Mapping+配置) references/patterns.md Step 8 模板参考
重大版本特性(废弃/依赖变更/新模块) references/version-major.md Step 0 版本检查(模块激活时即加载)
深度版本特性 — 9.x(Workflows / ES|QL 增强 / PromQL / GPU 向量 / FIPS) references/version-9.0.md Step 0 版本检查时自动加载(版本 ≤ 用户目标版本时)
深度版本特性 — 8.x(向量搜索 / ILM / SLM / Data Streams / ES|QL) references/version-8.0.md Step 0 版本检查时自动加载(版本 ≤ 用户目标版本时)

版本参考文档启用规则

  1. 模块激活时 — 始终加载 references/version-major.md,Agent 需主动对比用户使用的 Elasticsearch 版本,若存在废弃项或重大变更,立即提示用户
  2. 深度特性 Step 0 自动加载 — 版本检查时加载所有 version-X.Y.md(X.Y ≤ 用户目标版本)。设计过程中 Agent 从已加载的上下文中自主检索匹配相关特性,用户无需指定版本号
  3. 深度特性按大版本拆分,小版本持续追加 — 如 version-9.0.md 包含该大版本下所有小版本的设计级特性。更新时在文件中新增 ## X.Y.Z 版本节即可,不单开文件

硬规则

  1. 设计规范内容来自权威资料(Elastic 官方文档/社区最佳实践),不编造
  2. 生产环境 Mapping 必须 "dynamic": "strict""runtime",禁止完全动态映射
  3. 字符串字段按需设计:需要搜索+聚合时用 text+keyword 双字段;纯 ID/枚举仅用 keyword
  4. 禁止使用 _source.enabled: false(除非纯指标场景),丢失原始数据无法修复
  5. 优先使用 _bulk API 批量写入(吞吐量差 10-100 倍),非高频场景允许单条写入

    7w4.net提供免费和付费技能下载。

  6. 日志/指标/APM 等时序索引必须有 ILM 策略或 Data Stream 滚动机制
  7. 查询建议设置 timeout(分片级软超时)和 track_total_hits 限制,避免无界搜索

🤖 AI 评测

质量较好,专业度高。优点是触发条件清晰、覆盖内容全面(索引设计、Mapping、分片策略、日志优化等),最佳实践和常见坑总结实用。不足是缺少可直接用的代码示例,实操性偏弱。对于需要深度 Elasticsearch 设计指导的用户很有帮助,但期望拿来即用的用户可能会觉得不够。总体推荐,需要补充更多具体示例来提升实用性。

📊 多维度评分

适应性4.2
规范性4.5
有效性4.7
可靠性4.4
可信度5

📁 包含文件 (8 个)

📄 SKILL.md 6.8 KB
📄 references/best-practices.md 4 KB
📄 references/design-spec.md 4.5 KB
📄 references/patterns.md 5.6 KB
📄 references/usage-guide.md 4.5 KB
📄 references/version-8.0.md 3.9 KB
📄 references/version-9.0.md 6 KB
📄 references/version-major.md 3.2 KB