加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

“搜索”的原理,架构,实现,实践,面试不用再怕了(值得收藏)!!!

发布时间:2019-04-03 01:47:26 所属栏目:优化 来源:58沈剑
导读:可能99%的同学不做搜索引擎,但99%的同学一定实现过检索功能。搜索,检索,这里面到底包含哪些技术的东西,希望本文能够给大家一些启示。 全网搜索引擎架构与流程如何? 全网搜索引擎的宏观架构如上图,核心子系统主要分为三部分(粉色部分): (1)spider爬虫

有序链表集合求交集,跳表是最常用的数据结构,它可以将有序集合求交集的复杂度由O(n)降至接近O(log(n))。

集合1{1,2,3,4,20,21,22,23,50,60,70}

集合2{50,70}

要求交集,如果用拉链法,会发现1,2,3,4,20,21,22,23都要被无效遍历一次,每个元素都要被比对,时间复杂度为O(n),能不能每次比对“跳过一些元素”呢?

跳表就出现了:

集合1{1,2,3,4,20,21,22,23,50,60,70}建立跳表时,一级只有{1,20,50}三个元素,二级与普通链表相同。

集合2{50,70}由于元素较少,只建立了一级普通链表。

如此这般,在实施“拉链”求交集的过程中,set1的指针能够由1跳到20再跳到50,中间能够跳过很多元素,无需进行一一比对,跳表求交集的时间复杂度近似O(log(n)),这是搜索引擎中常见的算法。

简单小结一下:

(1)全网搜索引擎系统由spider, search&index, rank三个子系统构成;

(2)站内搜索引擎与全网搜索引擎的差异在于,少了一个spider子系统;

(3)spider和search&index系统是两个工程系统,rank系统的优化却需要长时间的调优和积累;

(4)正排索引(forward index)是由网页url_id快速找到分词后网页内容list的过程;

(5)倒排索引(inverted index)是由分词item快速寻找包含这个分词的网页list的过程;

(6)用户检索的过程,是先分词,再找到每个item对应的list,最后进行集合求交集的过程;

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读