搜索引擎的整体架构和工作过程

简介: 搜索引擎由爬虫、索引和检索三大系统构成:爬虫负责抓取网页并存储;索引系统对网页去重、分析并构建倒排索引;检索系统通过查询分析、相关性排序等技术,返回精准结果。全过程融合文本分析、机器学习与大规模计算,确保高效准确搜索。

搜索引擎会涉及非常多技术领域。其中,比较重要的有网页抓取、文本分析、检索模型、索引技术、链接分析、反作弊、云存储和云计算。正是因为涉及的领域非常多,所以搜索引擎完整的系统架构也非常复杂,会由许多子系统组成。

不过,我们可以从功能结构上,把搜索引擎的核心系统分为三部分,分别是爬虫系统、索引系统和检索系统。

接下来,我们就分别说说,这三部分子系统具体的作用和工作过程。

首先是爬虫系统。

一个好的搜索引擎,必须要能采集足够多的网页。因此,我们需要通过高性能的爬虫系统来完成持续的网页抓取,并且将抓取到的网页存入存储平台中。一般来说,我们可以将抓取到的网页存放在基于 LSM 树的 HBase 中,以便支持数据的高效读写。

其次是索引系统。

在爬虫系统抓取到网页之后,我们需要对这些网页进行一系列的处理,它们才可以变成可用的索引。处理可以分为两个阶段,首先是对网页进行预处理,主要的手段包括相似网页去重、网页质量分析、分词处理等工作,然后是对网页进行反作弊的分析工作,来避免一些作弊网页干扰搜索结果。

处理好网页之后,我们就要为搜索引擎生成索引,索引的生成过程主要可以分为三步。

第一步,索引拆分。由于抓取到的网页量级非常大,把它们全部都生成索引不太现实,因此我们会在离线阶段,根据之前的网页预处理结果,进行计算和筛选,分别分离出高质量和普通质量的网页集合。这样,我们就能进行分层索引了(第 12 讲)。当然,无论是高质量的网页集合还是普通质量的网页集合,数据量都不小。因此,我们还需要进行基于文档的拆分(第 10 讲),以便生成索引。

第二步,索引构建。在确认了索引的分片机制以后,我们可以使用 Map Reduce 服务,来为每个索引分片生成对应的任务,然后生成相应的倒排索引文件(第 8 讲)。每个倒排索引文件代表一个索引分片,它们都可以加载到线上的服务器中,来提供检索服务。

第三步,索引更新。为了保证能实时更新数据,搜索引擎会使用全量索引结合增量索引的机制来完成索引更新。并且由于搜索引擎的全量索引数据量巨大,因此,我们一般使用滚动合并法来完成索引更新(第 9 讲)。

有了这样创建出来的索引之后,搜索引擎就可以为万亿级别的网页提供高效的检索服务了。

最后是检索系统。

在检索阶段,如果用户搜索了一个关键词,那么搜索引擎首先需要做查询分析,也就是通过分析查询词本身以及用户行为特征,找出用户的真实查询意图。如果发现查询词有误或者结果很少,搜索引擎还会进行拼写纠正或相关查询推荐,然后再以改写后的查询词去检索服务中查询结果。

在检索服务中,搜索引擎会将查询词发送给相应的索引分片,索引分片通过倒排索引的检索机制,将自己所负责的分片结果返回。对于返回的结果,搜索引擎再根据相关性分析和质量分析,使用机器学习进行打分,选出 Top K 个结果(第 11 讲)来完成检索。

以上就是一个搜索引擎的完整的工作机制了。那与广告引擎和推荐引擎相比,搜索引擎最大的特点,就是它有一个很强的检索约束条件,那就是用户输入的查询词。可以说,查询词是搜索引擎进行检索的最核心的信息。但是很多时候,用户输入的查询词是含糊的、不精准的,甚至是带有错误的。还有一种可能是,用户输入的查询词不在倒排索引中。

这些问题也都是搜索引擎要解决的核心问题。因此,接下来,我们就以搜索「极客时间」为例,来讲讲搜索引擎的解决方案。

相关文章
|
SQL 运维 搜索推荐
《揭秘,阿里开源自研搜索引擎Havenask的在线检索服务》
Havenask是阿里巴巴智能引擎事业部自研的开源高性能搜索引擎,深度支持了包括淘宝、天猫、菜鸟、高德、饿了么在内几乎整个阿里的搜索业务。本文针对性介绍了Havenask的在线检索服务,它具备高可用、高时效、低成本的优势,帮助企业和开发者量身定做适合业务发展的智能搜索服务。
85057 138
|
人工智能 搜索推荐 异构计算
|
机器学习/深度学习 算法 流计算
深度预测平台RTP介绍
前言 RTP平台是阿里内部一个通用的在线预测平台,不仅支持淘系搜索、推荐、聚划算、淘金币等业务,也支持国际化相关icbu、lazada等搜索推荐业务,同时还支持着淘客,优酷、飞猪等大文娱的搜索推荐场景。
10472 0
|
1月前
|
人工智能 自然语言处理 Apache
Apache Doris AI 能力揭秘(四):HSAP 一体化混合搜索架构全解
AI 时代正在重塑数据库的角色。过去,数据库主要为人类分析者提供报表与查询能力;而现在,越来越多的查询来自智能代理(Agent),它们会自动检索知识、过滤数据、组合多种信号,并将数据库作为“实时信息源”支撑推理与决策。
143 8
Apache Doris AI 能力揭秘(四):HSAP 一体化混合搜索架构全解
|
11月前
|
数据采集 JSON API
小红书笔记详情 API 接口(小红书 API 系列)
小红书作为热门生活方式平台,拥有海量用户生成内容。通过其笔记详情接口,开发者可获取指定笔记的完整内容、作者信息及互动数据(点赞、评论、收藏数等),助力内容分析与市场调研。接口采用HTTP GET请求,需提供笔记ID,响应数据为JSON格式。注意小红书有严格反爬虫机制,建议使用代理IP并控制请求频率。
2143 3
|
自然语言处理 数据处理 调度
《Havenask分布式索引构建服务--Build Service》
Havenask是阿里巴巴智能引擎事业部自研的开源高性能搜索引擎,深度支持了包括淘宝、天猫、菜鸟、高德、饿了么在内几乎整个阿里的搜索业务。本文针对性介绍了Havenask分布式索引构建服务——Build Service,主打稳定、快速、易管理,是在线系统提升竞争力的一大利器。
102646 3
《Havenask分布式索引构建服务--Build Service》
|
存储 安全 数据安全/隐私保护
Cookie 和 Session 的区别及使用 Session 进行身份验证的方法
【10月更文挑战第12天】总之,Cookie 和 Session 各有特点,在不同的场景中发挥着不同的作用。使用 Session 进行身份验证是常见的做法,通过合理的设计和管理,可以确保用户身份的安全和可靠验证。
606 57
|
消息中间件 Docker 索引
【一文解读】阿里自研开源核心搜索引擎 Havenask简介及发展历史
本次分享内容为Havenask的简介及发展历史,由下面五个部分组成(Havenask整体介绍、名词解释、架构、代码结构、编译与部署),希望可以帮助大家更好了解和使用Havenask。
73291 0
【一文解读】阿里自研开源核心搜索引擎 Havenask简介及发展历史
|
SQL 消息中间件 Swift
【一文看懂】Havenask单机模式创建
本次分享内容为Havenask单机模式,由下面3个部分组成(Hape工具介绍、创建单机版Havenask、Hape问题排查),希望可以帮助大家更好了解和使用Havenask。
129119 1
|
自然语言处理 搜索推荐 算法
【一文读懂】基于Havenask向量检索+大模型,构建可靠的智能问答服务
Havenask是阿里巴巴智能引擎事业部自研的开源高性能搜索引擎,深度支持了包括淘宝、天猫、菜鸟、高德、饿了么在内的几乎整个阿里的搜索业务。本文针对性介绍了Havenask作为一款高性能的召回搜索引擎,应用在向量检索和LLM智能问答场景的解决方案和核心优势。通过Havenask向量检索+大模型可以构建可靠的垂直领域的智能问答方案,同时快速在业务场景中进行实践及应用。
111995 64