☰分类导航

软件工程/搜索引擎基础
课程进度 2% · 第1/6章第1/6章 · 标签 1/8
— 1 —

从站内搜索认识系统

假设学习平台已有三千篇课程,用户输入“Java 事务”,希望先看到相关课程,再按方向、难度筛选。搜索系统需要把作者写的内容转换成可检索的数据,并在用户输入后尽快返回有用结果。学习本章后,你应能画出数据到结果的流程,并用小程序解释倒排索引。

学习时沿着同一组课程样本前进:先手算候选集合,再理解字段评分,最后讨论更新与权限。这样每个名词都能对应一项具体操作,而不是把采集、索引和排序背成彼此独立的定义。

— 2 —

四个阶段各做什么

采集阶段取得课程标题、正文与权限;索引阶段分析文本并建立词项到文档的关联;查询阶段理解输入、筛选候选;排序阶段把更相关的内容排到前面。展示页还需摘要、分页和空结果引导。数据库仍保存原始业务记录,搜索索引作为可重建的派生数据。

这四个阶段可以分别失败。例如采集没取得正文,后面再好的排序也无法补回;正文已写入但权限字段错误,可能出现不该展示的结果。排查时先找出错误发生在哪一层,再选择工具。

  • 文档:一篇课程及其标识、标题、正文和分类。
  • 词项:分析文本后得到的检索单元,不一定等于一个汉字。
  • 倒排表:某个词项出现在哪些文档中。