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

相关推荐
步行cgn5 小时前
Spring c 命名空间注入详解
java·后端·spring
明月_清风5 小时前
Maven 到底是什么?一篇文章搞懂 Java 项目构建与依赖管理
java·后端·maven
aramae5 小时前
MySQL复合查询(8)
java·c语言·开发语言·后端·算法
Rain的Java大神之路6 小时前
如何快速上传10G文件
java·spring boot·redis·后端·mysql·spring cloud·面试
Wang's Blog6 小时前
Java 接入Redis: 通用命令与键管理
java·服务器·redis
Wang's Blog6 小时前
Java 接入Redis: 列表集合与有序集合操作命令
java·服务器·redis
Ivanqhz7 小时前
SVD++算法
java·服务器·网络·深度学习·神经网络
qq_2518364578 小时前
springboot vue3 开发实现 拼豆管理系统
java·开发语言·ai编程
caoerzhong8 小时前
JeeWMS 开源仓库管理系统全景解读:一套 Java WMS 如何把 WMS/OMS/BMS/TMS 装进同一个系统
java·开源
曹牧8 小时前
Java集合框架:List、ArrayList、Map 和 HashMap
java