三个阶段

一、抓取(Crawling)

搜索引擎用网络爬虫(Spider/Crawler)自动访问网页。

  • 从一批种子 URL 开始;
  • 下载页面,提取其中的链接,加入待抓取队列;
  • 重复,不断扩展。

爬虫要遵守的规则:

  • robots.txt:网站可以声明哪些内容不允许抓取;
  • 抓取频率控制:不能给网站服务器造成过大压力;
  • 去重:避免重复抓取相同内容。

挑战:网页数量以千亿计,且不断变化。爬虫需要判断哪些页面值得优先抓取和更新。

二、索引(Indexing)

抓取到的页面需要建立倒排索引(Inverted Index)。

正排索引是"文档 → 包含哪些词";倒排索引反过来,是"词 → 出现在哪些文档中"。

有了倒排索引,当用户查询"量子计算"时,系统可以直接找到包含这两个词的所有文档,而不必遍历全部网页。

索引中还会记录:词频、词在文档中的位置、段落、标题等信息——这些用于后续的排序。

处理流程还包括:

  • 分词(中文分词比英文复杂,因为没有空格分隔);
  • 去停用词("的""了""是"这类高频无实义的词);
  • 词干提取(英文中将"running""runs"归一为"run");
  • 识别页面的结构化信息(标题、正文、链接、图片、发布时间)。

三、排序(Ranking)

从索引中匹配到的文档可能有数百万篇,需要按相关性和质量排序。

经典算法思路:

TF-IDF:衡量一个词对文档的重要程度。

  • TF(词频):词在文档中出现的频率;
  • IDF(逆文档频率):词在所有文档中的稀有程度。越稀有,区分度越高。

PageRank:利用网页之间的链接关系评估权威性。

基本思想:被越多重要网页链接的页面,本身也越重要。这是一个递归定义,通过迭代计算求解。

BM25:TF-IDF 的改进版本,考虑了文档长度归一化和词频饱和效应,是经典的检索模型。

现代排序:早已不是单一算法,而是机器学习排序(Learning to Rank)——用数百个特征(相关性、页面质量、时效性、用户行为、页面加载速度、移动端友好度……)训练模型,给出最终排序。

查询理解

用户输入的不只是关键词。搜索引擎要做:

  • 分词与词性识别;
  • 同义词扩展("手机"和"智能手机");
  • 意图识别(是找信息、找网站、还是要买东西);
  • 实体识别("北京天气"中的"北京"是地点);
  • 拼写纠错。

一个简单的 SEO 建议

与其研究"怎么让搜索引擎喜欢",不如回到本质:

  • 内容本身对用户有价值;
  • 结构清晰、加载快、移动端体验好;
  • 被其他优质网站自然引用。

现代搜索引擎的核心目标,就是奖励这些。

说明:本文为信息检索的公开知识整理。