你将获得
- 5 类数据结构的原理和应用
- 15+ 行业真实应用案例详解
- 4 大热门行业检索架构和设计
- 从基础到实践,构建检索知识体系
课程介绍
在日常的工作或者面试中,经常会遇到一些与查询相关的问题,比如:
- 如何从海量数据中查询同时带有“极”和“客”字的唐诗?
- 为什么很多日志系统使用 NoSQL 数据库而不是关系型数据库?
- 在爬虫系统抓取网页之前,如何快速判断一个 URL 是否已经被抓取过?
其实,这些问题都属于检索技术的研究范畴。检索技术已经成为互联网时代技术人必不可少的技能之一,因为其应用极其广泛。
一方面,很多平台的架构设计都有相似的检索模块,比如搜索、推荐、广告等;另一方面,用好检索技术还可以帮助我们有效提升程序的执行效率,比如,只要我们能合理地使用数据库的索引功能,那程序从数据库中检索相关数据的速度就能提升好几倍。
在这个专栏中,陈东会通过 20 篇文章,将他十多年打造高性能广告引擎的工作经验,以及针对各种检索业务的深入思考和理解分享出来。带你系统地学习高效的检索方案和设计思想到底有哪些,到底怎么用;并且会结合工业界中的具体业务场景,从最简单的解决方案入手,一步一步带你分析各种方案的优缺点,找到最优解。
专栏共包含三个模块,分别是基础技术篇、进阶实战篇和系统案例篇。
基础技术篇:聚焦 5 大类核心的数据结构和检索算法,包括线性结构检索、非线性结构检索、哈希检索等,着重讲解它们的存储特点和检索效率,帮你理解检索技术的本质,并且能够在代码级别提升运行效率。
进阶实战篇:分析工业界中的高效检索方案,详细讲解其中涉及的高级检索技术,总结一些架构设计思想,比如,读写分离、索引和数据分离、空间检索、Top K 搜索。掌握这些设计思想和高级技术能够大幅度提升检索效率,帮你解决实际工作中的检索难题。
系统案例篇:剖析当前热门的存储系统、搜索引擎、广告引擎、推荐引擎。学习这些系统是如何应用检索技术架构的、关键环节如何处理,从而帮你扩大知识面,拥有架构师、设计者视角,能够从更高的角度去思考问题、解决问题。
课程目录
适合人群
1. 初级工程师:大学刚毕业或者拥有 0~5 年的工作经验,只要熟悉数组和链表,知道怎么评估时间代价即可。
2. 中高级工程师:有 5 年以上工作经验,从事搜索引擎、广告系统、推荐系统相关工作。
3. 任何在提高程序运行效率上遇到难题、想要拓展设计思路的程序员,都可以学习本专栏。