🔍

搜索引擎实战 · 从需求到上线

📘 30 章 · 完整项目
Python 3.10+ Elasticsearch 8.x Flask Jieba Docker ⚡ 全栈实战
01
项目背景与目标 概览
搜索引擎能做什么?课程目标与产出物 · 技术选型 Python+ES+Flask
02
需求分析 用户故事
用户故事与用例 · 核心功能(搜索/分词/排序)· 非功能需求
03
系统架构设计 架构图
整体架构图 · 模块划分(爬虫/索引/检索/API)· 数据流设计
04
技术栈详解 选型
Python 3.10+ · Elasticsearch 8.x · Flask · Jieba · Docker
05
开发环境搭建 工具
安装 Python / ES / Kibana / Postman · 环境验证
06
数据源准备 数据
数据来源(本地/数据库/API)· 清洗规则 · 数据样例
07
爬虫模块设计(上) 爬虫
爬虫策略(广度/深度)· URL去重 · 请求头伪装
08
爬虫模块设计(下) 解析
解析HTML (BeautifulSoup) · 提取正文与元数据 · 异常重试
09
数据存储设计 存储
ES vs MySQL · Mapping设计 · 索引分片策略
10
Elasticsearch基础 核心
索引/文档/分片与副本 · RESTful API 操作
11
中文分词技术 分词
分词原理 · Jieba集成 · 自定义词典 · 效果评估
12
索引构建(上) 写入
批量写入 · refresh_interval调整 · bulk性能优化
13
索引构建(下) 管理
索引别名 · 重建索引 · 索引模板 · 生命周期
14
搜索API设计 Flask
Flask项目初始化 · 搜索路由 · 请求参数校验
15
核心搜索逻辑 Query DSL
bool查询 · match与term · 排序与分页
16
高级搜索特性 高亮
高亮显示 · 模糊搜索 · 拼写纠错 · 同义词扩展
17
搜索结果排序 排序
TF-IDF/BM25 · 自定义排序 · 业务权重调整
18
搜索建议与补全 Suggester
Completion Suggester · 搜索历史 · 热门推荐
19
用户认证与限流 安全
API Key认证 · IP限流 · QPS控制 · 防爬虫
20
前端搜索页面(上) UI
HTML/CSS基础 · 搜索框设计 · 结果列表展示
21
前端搜索页面(下) 交互
AJAX异步请求 · 分页组件 · 加载/错误处理
22
性能优化(上) 索引
索引优化 · force merge · 查询缓存 · 连接池
23
性能优化(下) 监控
慢查询日志 · Profiling · 集群监控 (cerebro/head)
24
日志与监控 ELK
ELK Stack集成 · 业务日志采集 · 告警规则
25
单元测试与集成测试 pytest
pytest框架 · Mock外部依赖 · 测试覆盖率
26
Docker容器化 容器
编写Dockerfile · docker-compose · 多阶段构建
27
CI/CD流水线 自动化
GitHub Actions · 自动化测试 · 自动部署
28
生产环境部署 上线
服务器选型 · Nginx反向代理 · HTTPS · Supervisor
29
上线与灰度发布 发布
蓝绿部署 · A/B测试 · 回滚方案 · 监控大盘
30
项目总结与扩展 回顾
复盘关键决策 · 语义搜索 · 个性化推荐 · 课程回顾