framework
framework/elasticsearch/index.md
medium
framework-elasticsearch-index
Elasticsearch 用法规范 6 项 — Mapping 设计 / 中文 IK 分词 / bool 查询 DSL / 聚合 / 与 MySQL 同步 / 深分页。Use when 设计 ES 索引 Mapping / 写检索或聚合 DSL / 配中文分词 / 排查深分页与同步问题时。
子项索引
| 子项 | 一句话 |
|---|---|
| elasticsearch-mapping-design skill | Elasticsearch Mapping 字段类型设计 — text 用于分词全文检索、keyword 用于精确匹配/聚合/排序,避免全 text,长文用 text+keyword 子字段 |
| elasticsearch-analyzer-ik skill | Elasticsearch 中文分词器 IK — 索引用 ik_max_word 细粒度多切词提召回,查询用 ik_smart 粗粒度保精度,避免默认 standard 单字切分 |
| elasticsearch-query-dsl skill | Elasticsearch bool 复合查询 DSL — must 算分且必须、should 可选加分、filter 必须但不算分可缓存、must_not 排除,精确条件放 filter 而非 must |
| elasticsearch-aggregation skill | Elasticsearch 聚合分析 — 桶聚合 terms 分组、date_histogram 时间分桶、metrics 指标,聚合字段须 keyword/数值/date |
| elasticsearch-sync-from-mysql skill | MySQL 数据同步到 Elasticsearch — Canal 订阅 binlog 准实时(推荐)、应用双写(强耦合易不一致)、Logstash JDBC 批量定时拉(有延迟),按实时性与侵入性选型 |
| elasticsearch-deep-paging skill | Elasticsearch 深分页 — from+size 受 1 万限制且越深越慢,连续翻页用 search_after 游标,全量导出用 scroll/PIT |
Elasticsearch · 子项索引
这里是 ES 的用法规范。要不要引入 ES(vs ClickHouse/时序库)的选型对比在
../../tech-selection/search-olap/index.md。
ES 用法拆成 6 个独立决策点,按你正在做的事下钻:
| 你在做什么 | 进哪个 |
|---|---|
| 建索引、定字段类型(哪些 text 哪些 keyword) | mapping-design |
| 中文字段配分词器(建索引 / 查询用哪个) | analyzer-ik |
| 写检索 DSL(多条件组合 / 算分 vs 过滤) | query-dsl |
| 做聚合统计(分组计数 / 时间直方图 / 指标) | aggregation |
| 把 MySQL 数据同步进 ES(实时 / 批量) | sync-from-mysql |
翻页很深、from+size 报错或越来越慢 |
deep-paging |
链接
- 上层:
../index.md - 选型(是否该用 ES):
../../tech-selection/search-olap/index.md