课程进度 2% · 第1/6章第1/6章 · 标签 1/8
— 1 —
从站内搜索认识系统
假设学习平台已有三千篇课程,用户输入“Java 事务”,希望先看到相关课程,再按方向、难度筛选。搜索系统需要把作者写的内容转换成可检索的数据,并在用户输入后尽快返回有用结果。学习本章后,你应能画出数据到结果的流程,并用小程序解释倒排索引。
学习时沿着同一组课程样本前进:先手算候选集合,再理解字段评分,最后讨论更新与权限。这样每个名词都能对应一项具体操作,而不是把采集、索引和排序背成彼此独立的定义。
— 2 —
四个阶段各做什么
采集阶段取得课程标题、正文与权限;索引阶段分析文本并建立词项到文档的关联;查询阶段理解输入、筛选候选;排序阶段把更相关的内容排到前面。展示页还需摘要、分页和空结果引导。数据库仍保存原始业务记录,搜索索引作为可重建的派生数据。
这四个阶段可以分别失败。例如采集没取得正文,后面再好的排序也无法补回;正文已写入但权限字段错误,可能出现不该展示的结果。排查时先找出错误发生在哪一层,再选择工具。
- 文档:一篇课程及其标识、标题、正文和分类。
- 词项:分析文本后得到的检索单元,不一定等于一个汉字。
- 倒排表:某个词项出现在哪些文档中。