淘宝搜索引擎的工作原理(深入拆解\u0026#39;搜索引擎\u0026#39;实现原理一:初识 \u0026#39;搜索引擎\u0026#39;)


'搜索引擎& # 39;对许多大工厂来说,这不是一项新技术,

通常使用百度、淘宝等大型网站的搜索功能& # 39;搜索引擎& # 39;技术实现。

'搜索引擎& # 39;你到底做了什么?

它和普通的数据库搜索有什么区别?

什么时候需要用& # 39;搜索引擎& # 39;?

带着这些问题,我们开始【是& # 39;搜索引擎& # 39;探索】


'搜索& # 39;的本质其实是正确的& # 39;数据& # 39;处理,所以我们先从& # 39;谈论数据& # 39;

数据类型

从搜索的角度来看,数据可以分为两种:结构化数据和非结构化数据(全文数据)。

结构化数据:格式固定或长度有限的数据,就像我们使用的数据库一样(创建字段时必须指定格式)。

非结构化数据:指长度不定或格式不固定的数据,如邮件、word文档等。

因此,产生了两种类型的搜索。

搜索结构化数据:即SQL搜索数据库、名称、状态、创建时间等。,我们平时用的最多。

举个例子,我们假设微信官方账号把我的文章信息保存在这样一个表中。

表:id标题作者文件路径创建时间

当我希望查询标题包含& # 39;搜索& # 39;文章,一个SQL就行。

SELECT * from表中标题如& # 39;% search % & # 39这完成了结构化数据的搜索,

另一个是非结构化数据的搜索:即邮件、word文档等的内容搜索。

还是上面的例子,但这次我们希望搜索文章的内容包含& # 39;搜索& # 39;文章,你会怎么做?

按照上面结构化数据的搜索思路,遍历数据库中的所有文件路径,通过文件路径获取文章文件本体,从头到尾扫描文章内容,直到扫描完所有文件,返回匹配结果。

不用说,你也可以想想这种顺序扫描方式的效率。如果我有几千个文件,每个文件包含几千个字,扫描量可想而知。


全文检索

既然顺序扫描的方法不可取,那我们能不能换个思路:从非结构化的数据中提取一些信息,然后用一些规则重新组织,使其具有一定的结构,再对这种结构化的数据进行索引和搜索,达到快速搜索的目的?

这种对非结构化数据进行拆分、结构化、索引和搜索索引的搜索方法称为全文检索,即& # 39;搜索引擎& # 39;的设计理念。

就像单词和词典的关系一样,拼音表和部首词典相当于词典的索引,每个单词的释义都是无结构的。如果字典里没有音节表和偏旁字典,一个字只能在浩瀚的字海中顺序扫描。

但是可以提取一个单词的一些信息进行结构化处理,比如发音,更有结构性,分为声母和韵母,只能一一列出其中的几个,所以把发音拿出来按一定顺序排列,每个发音指向该单词详细解释的页码。

淘宝搜索引擎

我们搜索的时候可以根据结构化的拼音找到发音,然后根据它指向的页数找到我们的非结构化数据——也就是单词的释义。


还记得上面文章内容搜索的问题吗,我们试着用全文搜索模拟一下:

现在,假设我有100篇文章(编号为0~100),我需要找出& # 39;搜索& # 39;、'引擎& # 39;双关键词文章,

首先,根据这两个词建立索引结构:

左边是一系列字符串,称为字典。

每个字符串都指向一个包含该字符串的文档链表,这个链表被称为Posting List。

这样,我们只需要把& # 39;搜索& # 39;、'引擎& # 39;合并两个链表以获得搜索结果。

值得注意的是,虽然创建索引的过程和顺序扫描是一样的,但是区别在于顺序扫描每次都需要扫描,而创建索引的过程只需要做一次,然后就一劳永逸了,只需要搜索创建的索引。

这也是全文搜索相对于顺序扫描的优势之一:一次索引,多次使用。


这就是本文的内容。通过今天的内容,我们知道& # 39;搜索引擎& # 39;你做了什么,它和普通的数据库搜索有什么区别,什么情况下需要使用& # 39;搜索引擎& # 39;。

下期预告

下一篇文章,我们将深度拆解& # 39;搜索& # 39;引擎如何创建索引?为什么即使我输入了错别字,百度仍然返回正确的搜索结果?

更多工作做在同名微信官方账号:郝说编程,欢迎互相交流。

您可以还会对下面的文章感兴趣

最新评论

  1. 静待星辰落
    静待星辰落
    发布于:2022-04-27 00:44:32 回复TA
    音节表和偏旁字典,一个字只能在浩瀚的字海中顺序扫描。但是可以提取一个单词的一些信息进行结构化处理,比如发音,更有结构性,分为声母和韵母,只能一一列出其中的几个,所以把发音拿出来按一定顺序排列,每个发音指向该单词详细解释的页码。我们搜索的时候可以根据结构化的拼音找到发音,然后根
  1. 通波清昌
    通波清昌
    发布于:2022-04-27 00:31:28 回复TA
    可以啊
  1. 瞿广彦天
    瞿广彦天
    发布于:2022-04-27 00:31:28 回复TA
    以往拥有的,不要忘记;已经得到的,更要珍惜;属于自我的,不要放下;已经失去的,留着回忆;想要得到的,必须努力;但最重要的,是好好爱惜自我!

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

使用微信扫描二维码后

点击右上角发送给好友