搜索引擎-03-搜索引擎原理

拓展阅读

搜索引擎-01-概览

搜索引擎-02-分词与全文索引

搜索引擎-03-搜索引擎原理

Crawl htmlunit 模拟浏览器动态 js 爬虫入门使用简介

Crawl jsoup 爬虫使用 jsoup 无法抓取动态 js 生成的内容

Crawl WebMagic 爬虫入门使用简介 webmagic

全网搜索引擎架构与流程如何?

全网搜索引擎的宏观架构如上图,核心子系统主要分为三部分(粉色部分):

(1)spider 爬虫系统;

(2)search+index: 建立索引与查询索引系统,这个系统又主要分为两部分:

一部分用于生成索引数据 build_index

一部分用于查询索引数据 search_index

(3)rank 打分排序系统;

核心数据主要分为两部分(紫色部分):

(1)web 网页库;

(2)index 索引数据;

全网搜索引擎的业务特点决定了,这是一个"写入"和"检索"分离的系统

如何写入

系统组成:由spider与search+index;两个系统完成。

输入:站长们生成的互联网网页。

输出:正排倒排索引数据。

流程:如架构图中的1,2,3,4:

(1)spider把互联网网页抓过来;

(2)spider把互联网网页存储到网页库中(这个对存储的要求很高,要存储几乎整个"万维网"的镜像);

(3)build_index从网页库中读取数据,完成分词;

(4)build_index生成倒排索引;

如何建立索引

系统组成:由search+index;与rank两个系统完成。

输入:用户的搜索词。

输出:排好序的第一页检索结果。

流程:如架构图中的a,b,c,d:

(a)search_index获得用户的搜索词,完成分词;

(b)search_index查询倒排索引,获得"字符匹配"网页,这是初筛的结果;

(c)rank对初筛的结果进行打分排序;

(d)rank对排序后的第一页结果返回;

相关推荐
坐吃山猪31 分钟前
SpringBoot01-配置文件
java·开发语言
我叫汪枫1 小时前
《Java餐厅的待客之道:BIO, NIO, AIO三种服务模式的进化》
java·开发语言·nio
yaoxtao1 小时前
java.nio.file.InvalidPathException异常
java·linux·ubuntu
Swift社区2 小时前
从 JDK 1.8 切换到 JDK 21 时遇到 NoProviderFoundException 该如何解决?
java·开发语言
DKPT3 小时前
JVM中如何调优新生代和老生代?
java·jvm·笔记·学习·spring
phltxy3 小时前
JVM——Java虚拟机学习
java·jvm·学习
seabirdssss5 小时前
使用Spring Boot DevTools快速重启功能
java·spring boot·后端
喂完待续5 小时前
【序列晋升】29 Spring Cloud Task 微服务架构下的轻量级任务调度框架
java·spring·spring cloud·云原生·架构·big data·序列晋升
benben0445 小时前
ReAct模式解读
java·ai