初一信息技术 · 信息检索

你输入一个词,网页是怎么被找到的?

在百度、必应里敲下「机器人」,零点几秒后屏幕上出现成千上万条结果。它真的在这一瞬间跑遍了全世界的网页吗?

答案:没有。它早就提前做好了功课——给所有网页做了一张“词语 → 网页”的小抄。你一搜索,它只要查这张小抄就行了。
这张小抄,就叫 倒排索引。
1

先看整体:一共四步

前三步早就做完了,第四步才是你按下回车后发生的事。

点一下按钮,看看每一步发生了什么。
记住一句话:慢活儿提前干,快活儿当场算。抓网页、切词、做小抄都是提前做好的;你搜索时只是查表。
2

第一步难题:中文怎么切成词?

英文单词之间有空格,中文没有。电脑先要搞清楚:“机器人社团”应该切成【机器人 / 社团】,而不是【机器 / 人社 / 团】。

切出来的词 被丢掉的“没用的词” 电脑不认识的字
哪些词会被丢掉?像“的”“了”“是”“一个”几乎每个网页都有,拿来搜完全没用,电脑会把它们删掉,这样小抄能做得又小又快。
3

核心:那张神奇的“小抄”

下面有 6 个网页。电脑把每个网页切开后,记下了「哪个词 → 出现在哪几个网页里」。点右边任意一个词试试。

📄 网页库

🗂️ 小抄(倒排索引)

点一个词,看看它出现在哪些网页里:

这就是“倒排”:平时看书是按「页码 → 内容」排的,搜索引擎偏偏反过来,按「词语 → 页码」排。查起来才快。
4

亲眼看看:有这张小抄有多快

如果没有小抄,电脑只能一个一个网页翻;有了小抄,一步就能跳到答案。选个词,把两个按钮都点一遍。

我要找:
0一个一个翻:翻了几个网页
0查小抄:看了几条记录
0找到的网页数
先点「🐢 一个一个翻」,再点「⚡ 查小抄」,比较一下它们的次数。
把这 6 个网页想成全世界的 300 亿个网页:一个一个翻要翻开 300 亿次;查小抄只要在词典里找一次词。这就是索引的全部意义。
5

找到一堆网页,谁排第一?

同时找到好几篇的时候,电脑按一个简单的规矩排队:词出现得越多分越高,出现在标题里再加分。

网页这个词出现了几次在标题里吗得分

最后的搜索结果页

真实的搜索引擎排队要复杂得多:还会看网页是不是经常被别人推荐、是不是新发布的、有没有乱堆关键词骗人……但最基本的想法,就是刚才这一套。
6

三道题,检查一下

做完了给同桌讲一遍原因。

今天记住三句话

1. 搜索不是临时去网上找,网页早就抓好了。
2. 先把网页切成词,再做一张「词 → 网页」的小抄,叫倒排索引。
3. 谁排第一,看相关性:词出现多少次、在不在标题里、网页本身靠不靠谱。