CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Elasticsearch 入门/课时/搜索引擎是什么
RawBlame
课时目录12 节

Elasticsearch 入门

  1. 01搜索引擎是什么
  2. 02核心概念
  3. 03Docker 单节点
  4. 04Mapping 与字段类型
  5. 05索引 CRUD
  6. 06查询 DSL
  7. 07聚合入门
  8. 08Spring Data Elasticsearch
  9. 09数据同步
  10. 10分片与扩容
  11. 11Kibana 可视化
  12. 12综合练习

搜索引擎是什么

全文检索 vs SQL LIKE;适用场景。

30 分钟

搜索引擎是什么

Elasticsearch(ES)是分布式全文检索与分析引擎,基于 Apache Lucene。学完 sql-essentials 后,本 track 帮你理解:何时 SQL 不够、何时需要专用搜索引擎。

学习目标

  • 区分全文检索与 SQL LIKE / 索引扫描
  • 列出 ES 的典型适用场景与反模式
  • 明确 CodeRoadMap MySQL 8 仍为权威数据源,ES 用于搜索实验

核心内容

全文检索 vs SQL LIKE

维度MySQL LIKE '%关键词%'Elasticsearch
索引结构B+Tree,前缀可走索引倒排索引(词 → 文档列表)
分词无内置中文分词analyzer 可配置 ik 等
相关性排序难做 TF-IDF / BM25_score 内置
模糊/同义词正则或应用层fuzziness、synonym filter
事务ACID近实时,最终一致
-- MySQL:全表扫描或有限索引,难排序「最相关」
SELECT slug, title FROM cf_track
WHERE title LIKE '%Spring%' OR summary LIKE '%Spring%';
curl -s -X GET "localhost:9200/tracks/_search" -H "Content-Type: application/json" -d '
{
  "query": {
    "multi_match": {
      "query": "Spring Boot",
      "fields": ["title^2", "summary"]
    }
  }
}'

适用场景

  • 站内搜索:课程、文档、FAQ 关键词检索
  • 日志分析:ELK 栈(本 track 侧重搜索,日志见运维路线)
  • 推荐/标签聚合:与 es-agg 配合

在本站架构里

Next.js 主站  →  Spring Boot REST  →  MySQL 8(cf_track、cf_lesson 权威)
                              ↓ 异步同步(实验)
                         Elasticsearch(tracks 搜索索引)

不要把 cf_track 主库迁到 ES。与 mongodb-essentials 文档库、postgresql-essentials 实验 PG 一样,ES 是 能力扩展,非 OLTP 替代。

何时不必上 ES

  • 数据量小、查询简单,MySQL 全文索引或 PG tsvector 够用
  • 强一致读写、复杂 JOIN——继续 spring-boot-essentials JPA + MySQL

练习

  • 用 MySQL 对 cf_track.title 做 LIKE '%Java%',记录执行计划
  • 列出 3 个你认为「必须 ES」与「MySQL 够用」的场景
  • 在 全栈路线图 找到 search-engines 相关节点

小结

ES 解决「搜得准、排得好、聚合快」;本站业务库仍是 MySQL。 下一课 Index、Shard 等核心概念。

加载本节练习…
下一课 →核心概念