搜索引擎的原理,架构与细节

1、全网搜索引擎架构与流程

这里写图片描述
全网搜索引擎的宏观架构如上图,主要由核心系统和核心数据组成。
核心系统主要分为三部分(粉色部分):

  1. spider爬虫系统;
  2. search&index建立索引与查询索引系统,这个系统又主要分为两部分:
    一部分用于生成索引数据build_index;
    一部分用于查询索引数据search_index。
  3. rank打分排序系统。

    核心数据主要分为两部分(紫色部分):
    1、 web网页库
    2、 Index索引数据


全网搜索引擎的业务特点决定了,这是一个“写入”和“检索”完全分离的系统:
【写入】

系统组成:由spider与search&index两个系统完成 
输入:站长们生成的互联网网页 
输出:正排倒排索引数据

流程:如架构图中的1234

 1. spider把互联网网页抓过来
 2. spider把互联网网页存储到网页库中(这个对存储的要求很高,要存储几乎整个“万维网”的镜像)
 3. build_index从网页库中读取数据,完成分词;
 4. build_index生成倒排索引。

【检索】

系统组成:由search&index与rank两个系统完成 
输入:用户的搜索词 
输出:排好序的第一页检索结果
流程:如架构图中的a,b,c,d

search_index获得用户的搜索词,完成分词;
search_index查询倒排索引,获得“字符匹配”网页,这是初筛的结果;
rank对初筛的结果进行打分排序;
rank对排序后的第一页结果返回。

2、站内搜索引擎架构与流程

这里写图片描述

站内搜索引擎的宏观架构如上图,与全网搜索引擎的宏观架构相比,差异只有写入的地方:

全网搜索需要spider要被动去抓取数据;
站内搜索的数据是内部系统生成的,例如“发布系统”会将生成的帖子主动推给build_data系统。
看似“很小”的差异,架构实现上难度却差很多:

全网搜索如何“实时”发现“全量”的网页是非常困难的,而站内搜索容易实时得到全部数据。

对于spider、search&index、rank三个系统:

  • spider和search&index是相对独立的系统;

  • rank是和业务、策略紧密、算法相关的系统,搜索体验的差异主要在此,而业务、策略的优化是需要时间积累的

参考文章请点击:
搜索系统—搜索引擎的原理,架构与细节

猜你喜欢

转载自blog.csdn.net/qq_30354455/article/details/82558138