1.5. 搜索引擎原理

搜索引擎原理 导语

在搜索框里输入查询词或语句(教程后文统称为 Query),搜索引擎会在毫秒级别内给出答案。这中间究竟发生了什么不为人知的秘密?对于意欲提升搜索能力的你是否有必要去了解呢?

当然!每一次搜索就像是你和机器的对话,机器有如写死的规则一样的运行程式,也有通过深度学习的自我优化。你是人,但你又是个性的人,要想机器更懂你的意图,我想了解它的「行为准则」是必要的。并且之所以将其写到教程的头部,也是觉得了解搜索引擎的原理有助于我们建立一个清晰的搜索行为模型,用于指导搜索过程的思维方式。显然这部分内容对于整个教程而言是提纲挈领的。

原理

首先,这里推荐观看 Google 官方制作的一个介绍视频:How Search Works。

在我们进行搜索之前,搜索引擎就已经开始工作——抓取网页并编入索引。所以实际上,我们搜索的不是网页,而是索引。

通过抓取网页查找信息 🕷

搜索引擎使用一种称为网页抓取工具的软件(即所谓的爬虫、蜘蛛)来发现供公众访问的网页。抓取工具会查看网页,并跟踪访问这些网页上的链接,如同我们在网上浏览内容一样。这类抓取工具会逐一访问各个链接,并将各网页的相关数据返回至搜索引擎的服务器。

通过编入索引整理信息 📑

当抓取工具找到一个网页时,搜索引擎的系统就会像浏览器一样呈现该网页的内容。并且会记下关键信号(从关键字到网站更新频率),然后会在索引中跟踪所有这些内容。 被编入索引的每个网页中出现的每个字词都分别对应一个条目。在将某个网页编入索引时,搜索引擎会将它添加到与它包含的所有字词对应的条目中。

要点

通用搜索引擎的技术构建主要包含三个部分:

对 Query 的理解 对内容(文档)的理解 对 Query 和内容(文档)的匹配和排序

这其中,了解搜索引擎对 Query 的理解,是有助于我们和机器更好的沟通。下面展开来说。

对 Query 的理解

当你的 Query 表意不够明确时,搜索引擎会做出一些「小动作」和你进行「友好磋商」。比如 Google 将查询扩展应用于提交的搜索查询,使用的技术可以提供比查询用户实际提交的结果更「智能」的结果。这项技术涉及几个步骤,包括:

近似词:一个词的近似词也会出现在搜索结果,比如搜 "translator" 也包含 "translation"; 缩写:搜索缩写可以返回全拼的结果,如「北约 」可以显示「北大西洋公约组织」结果; 拼写错误: 输入拼写错误时,Google 给出正确的单词拼写; 同义词:如果单词在短语或句子中的使用不正确,Google 会根据正确的同义词显示结果; 翻译:搜索引擎可以针对不同语言的特定单词建议结果; 忽略单词: 在某些包含无关或无意义单词的 Query 中,Google 会删除这些单词再搜索。 联想查询:在用户输入时,搜索栏下方的列表中为用户提供自动完成的 搜索建议。

当然,以上这些查询扩展技术是基于高频有规律的 Query 来做针对性优化,在以上情形下,即便用户犯错,也会被及时自动纠正。但这仅仅是机器学会读懂人心的小学阶段,人类大脑活动的复杂性远超任何程序算法,下面要介绍的难点才是搜索引擎一直面临的挑战,而这些难点往往也是因为我们「不友好」的 Query 造成的,了解这些难点,有助于我们规范和优化 Query。说白了,你不难为它,它也就会给你「好看」。

难点 举例 我们如何做得更好 输入不规范 丰乳肥臀哪里可以下载 丰乳肥臀 pdf 关键词的歧义 汉堡,城市名还是🍔? 消除歧义 意图强度的判定 以图搜图上传一张二次元妹子,搜索引擎猜测是 girl? 将 girl 修改为 二次 girl 试试 意图的时效性变化 明年再来搜「沸腾」,可能就没多少华为的结果了 搜索工具中的时间限定

你会发现,通过百度搜索一些符合以上难点的问题时,往往也还能得到不错的结果。因为百度给自己产品的权重高,而像「百度知道」这样充斥着「难为搜索引擎的问题」的问答平台,则为这些形形色色、奇奇怪怪的 Query 提供了「气味相投」的数据池。

比如下面这张来自「百度知道」截图。如果参与解答过虫部落第17期题目(虫部落邀请码第17期题目:用搜索引擎来弥补遗憾)的虫友大概会笑而不语了。对于搜索引擎而言,无法结合图片来理解这个很口语化语义不明的问题,但正因为有「百度知道」这样的问答平台,才给这类查询提供了很多精准的结果。但!成也知道,败也知道。很多参与答题的虫友相信了这个问题下的错误答案......所以找到结果并非终点,「小心求证」在如今的中文互联网环境中是很有必要的。

我们当然无须破费时间精力去了解搜索引擎对 Query 理解的各种算法,只要在平时的搜索中保持敏锐的观察力,通过结果的呈现规律去发现和体会搜索引擎对你各种意图的各种理解,就会越来越驾轻就熟地运用它——服务好那个独特的你。

高效搜索模型 Beta 预判

提升搜索能力的目的之一是为了节省时间,而有些人却舍本逐末地将大量时间浪费在不断尝试的搜索中,这来自于他们相信「万物皆被索引」的执念。消除这种执念需要在搜索前做一定的预判。不必担心,这种所谓的预判其实就来自于你对事实的足够认知之上,发生在潜意识,毫秒之间。

比如最常见的,某出版社周一才出版了一本书,你周末就非得在网上找到可免费下载的电子版???事实是可能吗?可能的概率有多大?大到值得你破费老半天功夫去找吗?

其实就如同我们在生活中做很多事情一样,需要「心里有底,手有分寸」,培养预判能力需要我们不断积累知识经验,将不必要的时间浪费用在更有价值的事情上。

选择

是用 Google、百度等通用搜索引擎?还是用专业领域的垂直搜索引擎?我们很难去设定一个标准来作为选择的依据,也没有必要。因为随着我们对各种搜索引擎的日常使用,脑海中自然会建立一些映射关系:

写毕业论文,搜索相关文献 👉 Google 学术搜索等; 申请专利,检索相关资料 👉 Google Patents、SooPAT 等; 找一本电子书 👉 电子书搜索中挑一挑; 某位当红男演员出轨了 👉 微博热搜吃瓜; 想了解网友对于某个热门事情的较为深入的看法 👉 知乎承包了「如何看待」体; 2014年的虫部落首页是什么样子? 👉 Wayback Machine - Internet Archive; 探索英国巨人堤道形成的奥秘 👉 Google 搜索巨人堤道 ,查看维基百科词条; ......

预判是为了避免不必要的时间浪费,而选择亦是为了借助更高效的搜索来节省时间,选择大于努力。

执行

高效的前提是明确对搜索流程中自己可以有所作为的部分,然后再针对「如何去优化」进行更深入的学习和实践,以此来不断积累经验,方能对看似简单的原理做到驾轻就熟。

修改关键词

说起来,对于关键词的使用可能是最容易被人忽视的。网络上也鲜有人专门针对这部分展开阐述,而是剑走偏锋地去渲染搜索指令和一些冷门搜索引擎的神奇功效。真是傻啊!

即便是进入 AI 时代,我们使用搜索引擎时最高频的操作依然是输入关键词。显然,这是不可绕开的话题。那么「修改关键词」包含哪些基本操作呢?

操作 场景 减少或避免使用没有语义的字词 没有哪个作者会在网页 title 里堆积一些没有语义的词汇 用英文同义词替换中文关键词 判断信息是源自外网,那么英文词结果通常更多更准确 尝试使用直觉式的问题表述方式 通过百度搜索,在百度知道的答案中解决许多此类问题 注意「搜索提示」和「相关搜索」 搜索引擎会在输入时提示,或者在结果中给出搜索建议

减少或避免使用没有语义的字词 和 尝试使用直觉式的问题表述方式 看起来似乎是矛盾的,但由于搜索引擎在自然语言处理方面的技术进步,以及类似百度知道这样拥有大量直觉式口语化的提问,使得我们在搜索很多日常琐碎的问题时,很容易在百度知道里找到答案。

使用高级搜索指令

这部分内容稍后会在 Google 搜索指令部分呈现,还会在搜索的奇技淫巧部分强调。它们中的绝大部分在通用搜索引擎中都是适用的。

使用搜索工具过滤结果

我们常用的搜索引擎基本都提供了搜索工具,并且各自的功能有所差异。同一搜索引擎如 Google,网页版的搜索工具通常要比移动版的功能更多。

无论是网页搜索还是图片或新闻搜索,这些搜索工具都是非常具有实用性的,但却因为被隐藏在二级菜单而容易被用户忽视,而本教程中的诸多知识节点中将用特别有说服力的案例来展现搜索工具的实用性。

By 寻蜜,© 2021 searchoney 蜀ICP备202100115号-1            此页面修订于: 2021-02-23 09:36:14