搜索引擎-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对排序后的第一页结果返回;

相关推荐
雨中飘荡的记忆19 小时前
ElasticJob分布式调度从入门到实战
java·后端
考虑考虑1 天前
JDK25模块导入声明
java·后端·java ee
_小马快跑_1 天前
Java 的 8 大基本数据类型:为何是不可或缺的设计?
java
Re_zero1 天前
线上日志被清空?这段仅10行的 IO 代码里竟然藏着3个毒瘤
java·后端
洋洋技术笔记1 天前
Spring Boot条件注解详解
java·spring boot
程序员清风2 天前
程序员兼职必看:靠谱软件外包平台挑选指南与避坑清单!
java·后端·面试
皮皮林5512 天前
利用闲置 Mac 从零部署 OpenClaw 教程 !
java
华仔啊2 天前
挖到了 1 个 Java 小特性:var,用完就回不去了
java·后端
SimonKing2 天前
SpringBoot整合秘笈:让Mybatis用上Calcite,实现统一SQL查询
java·后端·程序员
日月云棠3 天前
各版本JDK对比:JDK 25 特性详解
java