Elasticsearch 实战四周路线图:极客时间电子书 8 本书单与验收标准
【免费下载链接】geektime-books:books: 极客时间电子书项目地址: https://gitcode.com/GitHub_Trending/ge/geektime-books
商品搜索输入「无线耳机」结果为 0 条,日志查询页转 8 秒不出数据,DBA 说给 MySQL 加索引也没用。这三个症状指向同一个缺口:搜索引擎选型、数据建模、查询链路,你全都没搭。把这套极客时间电子书 clone 下来,下面挑的 8 本书,够你从 0 走到能上线的搜索服务。
📦 资源地图:搜索方向只读这 8 本
全集目录在 README.md 里,下表只列搜索方向要读的部分。
打地基:数据与索引
| 书名 | 补哪块短板 | 适合谁 |
|---|---|---|
| 01-数据结构与算法之美 | 倒排索引、哈希、排序,搜索底层的数据结构 | 基础薄弱的同学 |
| 06-MySQL实战45讲 | 关系库搜索的边界、何时该引入 ES | 有 1 年以上业务开发经验 |
| 46-Kafka核心技术与实战 | 业务数据到 ES 的增量同步链路 | 做实时数据链路的人 |
攻内核:检索与分布式
| 书名 | 补哪块短板 | 适合谁 |
|---|---|---|
| 123-检索技术核心20讲 | 倒排索引、BM25 打分、聚合原理,主线书目 | 所有人,必读 |
| 90-分布式技术原理与算法解析 | 分片拆分、主节点选举、集群协调机制 | 要部署多节点集群的人 |
| 88-高并发系统设计40问 | 扛住上万 QPS 的查询链路设计 | 后端开发 |
做实战:性能与调优
| 书名 | 补哪块短板 | 适合谁 |
|---|---|---|
| 47-Java性能调优实战 | JVM 层的性能问题定位与优化 | Java/Spring 技术栈 |
| 12-Linux性能优化实战 | ES 节点的容器 CPU、内存调优 | 偏运维的开发 |
🗓️ 四周成长路线
第 1 周:单节点 ES 跑通第一次搜索
- 做什么:
git clone https://gitcode.com/GitHub_Trending/ge/geektime-books拉取书单,本地部署 Elasticsearch 8.x,装 IK 分词器,导入 1 万条商品文档,跑通增删改查和关键词搜索。 - 验收标准:按商品名能搜到指定商品,响应 <100ms;能在白板上画出 index→shard→replica 的关系。
第 2 周:检索内核 + 相关性调优
- 做什么:读完《123-检索技术核心20讲》前 8 章,手画出倒排索引的构建流程;整理 20 个真实搜索词做测试集,用 BM25 给 1000 篇文档排序。
- 验收标准:能讲清每个词为什么排第一;挑 5 个排序差的 case,调分词器或 boost 后位次上升。
第 3 周:增量同步链路
- 做什么:接 MySQL binlog→Kafka→ES 的增量同步;扩到 3 节点集群,副本数 replicas=1。
- 验收标准:改完数据 5 秒内可搜到;集群健康度从 yellow 到 green;停掉 1 个节点搜索不中断。
第 4 周:压测 + 聚合报表
- 做什么:把搜索接口压到 5000 QPS,看慢查询日志,做一轮 Elasticsearch 性能调优;写 3 个聚合查询——类目销售额、价格区间分布、城市统计。
- 验收标准:P99 <200ms、错误率 <1%;产出一页可展示的聚合报表。
⚠️ 避坑清单:5 个常见误区
- ❌ 把业务表全部字段灌进 ES → ✅ ES 只留可搜索和展示字段,其余留 MySQL,ES 返回 id 后再回查
- ❌ 用通配符在 match 查询里写“包含”搜索 → ✅ 中文分词用 ik_smart / ik_max_word,ngram 只用在特定场景
- ❌ 业务页面用 scroll 深分页导出全量数据 → ✅ 深分页改用 search_after,批量导出走专门任务
- ❌ 集群慢就先把内存翻倍 → ✅ 先看慢日志和 GC 日志,确认单分片 10~50GB 再谈扩容
- ❌ 过滤条件、全文检索都建成 text 类型 → ✅ 精确过滤用 keyword,全文搜索才用 text
🎁 学完能交付什么:3 个落地场景
- 给电商站加站内搜索:商品名、规格、标签都能搜,按相关性排序,P95 <300ms
- 把日志查询从 10 秒压到 1 秒:服务日志建索引,时间范围 + 关键词一次定位异常堆栈
- 实时销售看板:类目销售额、城市库存统计用一份聚合报表出,替代 5 条以上 SQL
这周先把《123-检索技术核心20讲》下载下来读掉第 1 章;如果路线对你有用,给仓库点个 star ⭐
【免费下载链接】geektime-books:books: 极客时间电子书项目地址: https://gitcode.com/GitHub_Trending/ge/geektime-books
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考