前三步早就做完了,第四步才是你按下回车后发生的事。
记住一句话:慢活儿提前干,快活儿当场算。抓网页、切词、做小抄都是提前做好的;你搜索时只是查表。
英文单词之间有空格,中文没有。电脑先要搞清楚:“机器人社团”应该切成【机器人 / 社团】,而不是【机器 / 人社 / 团】。
哪些词会被丢掉?像“的”“了”“是”“一个”几乎每个网页都有,拿来搜完全没用,电脑会把它们删掉,这样小抄能做得又小又快。
下面有 6 个网页。电脑把每个网页切开后,记下了「哪个词 → 出现在哪几个网页里」。点右边任意一个词试试。
🗂️ 小抄(倒排索引)
点一个词,看看它出现在哪些网页里:
这就是“倒排”:平时看书是按「页码 → 内容」排的,搜索引擎偏偏反过来,按「词语 → 页码」排。查起来才快。
如果没有小抄,电脑只能一个一个网页翻;有了小抄,一步就能跳到答案。选个词,把两个按钮都点一遍。
我要找:
0一个一个翻:翻了几个网页
0查小抄:看了几条记录
0找到的网页数
先点「🐢 一个一个翻」,再点「⚡ 查小抄」,比较一下它们的次数。
把这 6 个网页想成全世界的 300 亿个网页:一个一个翻要翻开 300 亿次;查小抄只要在词典里找一次词。这就是索引的全部意义。
同时找到好几篇的时候,电脑按一个简单的规矩排队:词出现得越多分越高,出现在标题里再加分。
真实的搜索引擎排队要复杂得多:还会看网页是不是经常被别人推荐、是不是新发布的、有没有乱堆关键词骗人……但最基本的想法,就是刚才这一套。
做完了给同桌讲一遍原因。
今天记住三句话
1. 搜索不是临时去网上找,网页早就抓好了。
2. 先把网页切成词,再做一张「词 → 网页」的小抄,叫倒排索引。
3. 谁排第一,看相关性:词出现多少次、在不在标题里、网页本身靠不靠谱。