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

相关推荐
满满和米兜1 分钟前
【Java基础】- 集合-HashSet与TreeSet
java·开发语言·算法
网安INF13 分钟前
数据结构第二章复习:线性表
java·开发语言·数据结构
aq553560016 分钟前
Laravel10.X核心特性全解析
java·开发语言·spring boot·后端
锦瑟弦音33 分钟前
Java与SQL基础知识总结
java·开发语言
停水咋洗澡36 分钟前
Redis Sentinel高可用实战:主从自动故障转移
java·redis·sentinel
ch.ju38 分钟前
Java程序设计(第3版)第二章——引用数据类型:String
java
yaoxin5211231 小时前
376. Java IO API - 使用 Globbing 和自定义 Filter 过滤目录内容
java·开发语言·python
手握风云-1 小时前
JavaEE 初阶第三十一期:JVM,一次Full GC的架构级思考(下)
java·java-ee
Mr YiRan1 小时前
JNI技术之手写JNIEnv与静态缓存与native异常
java·c++