首页 > 其他分享 >这就是搜索引擎(1) 搜索引擎的技术架构

这就是搜索引擎(1) 搜索引擎的技术架构

时间:2022-11-27 20:11:14浏览次数:55  
标签:网页 离线 技术 查询 索引 架构 搜索引擎

0. 前言

  1. 本系列文章主要是源于对《搜索引擎的技术架构》一书的读书笔记,其中会掺杂在其他文章或书籍的内容以及我个人对搜索引擎的理解,阅读顺序也没有按照书中目录的顺序来,相比于单纯的知识点总结,本系列更像是我借由此书来谈一谈我对搜索引擎的理解。
  2. 本系列文章专注于描述搜索引擎的技术架构,对搜索引擎的历史发展和当下定位不过多赘述。

1. 目标

简单来说,搜索引擎的目标可以用三个词来概括:更全、更快、更准。
更全:针对搜索引擎的所索引网页数量,当前所有的商业搜索引擎的索引网页覆盖范围都能只能覆盖互联网网页的一部分,
更快:即是指数据的时效性,也是指用户搜索时的响应速度。
更准:搜索结果更加准确。
对于搜索引擎来说,“更准”是最为关键的目标,是其核心竞争力。

2.搜索引擎的技术架构

搜索引擎在整体架构上可以分为离线和在线,离线的生效发生在用户查询之前,在线发生在用户查询之后。

2.1 离线侧

离线侧的目标是将海量的互联网的信息转化为结构化的本地信息,通过存储在倒排索引的方式供在线进行高效的查询。
离线整体流程可以描述为

  1. 搜索引擎通过网络爬虫将互联网信息获取到本地,对于内容相似或者完全重复的内容,通过网页去重进行检测并去掉重复的内容。
  2. 接着搜索引擎会对网页进行分析,抽取出网页主体内容等网页相关信息以及其与其他网页的连接关系。
    1. 其中网页相关内容使用“倒排索引”这种高效查询结构来保存,可以加快用户的查询速度。
    2. 保存链接关系的目的在于通过链接分析可以从另一方面感知页面的重要性,帮助网页进行排序
    3. 对于百亿级别网页的分析和计算,使用少量的机器是不现实的,目前的商业搜索引擎为此开发或者使用一整套的云存储与云计算平台,使用上万台服务器来搭建可靠的信息存储与计算架构。

2.2 在线侧

在线侧做的事情发生在用户输出查询词之后,其目的是分析出用户的意图并从索引中找到与之匹配的网页。
在线整体流程可以描述为

  1. 当搜索引擎接收到查询词之后,首先对查询词进行分析,从而推导用户的真实意图
  2. 在缓存中进行查找,搜索引擎的cache系统存储了不同查询意图对应的搜索结果,目的是节省一些热门意图的重复资源消耗,也能加快响应速度。
  3. 当缓存内容无法满足需求的时候,搜索引擎会进入网页排序阶段,根据用户的查询词与倒排索引中的网页内容,计算出内容的相似性,通过链接分析计算出网页的重要性,两者作为参考对网页进行排序并作为查询结果返回。

标签:网页,离线,技术,查询,索引,架构,搜索引擎
From: https://www.cnblogs.com/Hugh-Locke/p/16930496.html

相关文章

  • 用技术小细节体现乙方MSP体系中服务大价值
    做一个简单的智能分析表,其实很简单,这个不存在难度和门槛。这里面其实比较考验人的是我们对数字的敏感度有多少~~~​首先,理解场景化思考我们做的比较多的分析来自于白皮书也......
  • 《ASP.NET Core技术内幕与项目实战》精简集-DDD准备5.5:集成事件RabbitMQ
     本节内容,部分为补充内容,部分涉及到9.3.10-9.3.12(P335-342)。主要NuGet包:RabbitMQ.Client 微服务间,跨进程的事件发布和订阅,需要借助第三方服务器作为事件总线,目前常......
  • 重庆大学生自主创业 创建重庆爬虫信息技术有限公司简称 爬虫科技
    ​​重庆爬虫信息技术有限公司​​关于我们:重庆爬虫信息技术有限公司(官网:​​爬虫科技​​中文域名:瓦力科技.com)是服务器于全国移动互联应用服务领域集APP定制、开发、优化......
  • Solr与HBase架构设计
    1.1  一次性创建索引l、  删除全索引效率很高,可以关闭Solr后,直接删除Data文件。2、 重新创建全索引拉取HBase中全数据,分批次创建索引。 1.2  增量创建索引1、触发器......
  • Kafka剖析(一):Kafka背景及架构介绍
     背景介绍Kafka创建背景Kafka是一个消息系统,原本开发自LinkedIn,用作LinkedIn的活动流(ActivityStream)和运营数据处理管道(Pipeline)的基础。现在它已被​​多家不同类型的......
  • Linux面试题3:Linux零拷贝技术
    zero-copy技术Linux网络IO数据传输过程图整个操作过程中,做了四次用户态和内核态的状态切换,数据从网卡copy到内核缓冲区,再从内核缓冲区copy到user-space;写入时从user-spa......
  • 【Alibaba中间件技术系列】「Nacos技术专题」服务注册与发现相关的原理分析
    Nacos的概览Nacos/nɑ:kəʊs/是DynamicNamingandConfigurationService的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos致力......
  • JDBC核心技术
    以下为本人的学习笔记 第1章:JDBC概述1.1数据的持久化持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化......
  • 如何设计一个消息中间件? 消息中间件的总体架构
    MQ概念1.消息(Message)消息是MQ中最小的概念,本质上就是一段数据,它能被一个或者多个应用程序所理解,是应用程序之间传递的信息载体。2.队列(Queue)2.1本地队列本地队列按照功......
  • 从虚拟化到云原生——容器技术的发展史
    近年来,云原生(CloudNative)可谓是IT界最火的概念之一,众多互联网巨头都已经开始积极拥抱云原生。而说到云原生,我们就不得不了解本文的主角——容器(container)。先让......