一、搜索引擎的基本结构
搜索引擎基本结构一般包括:搜索器、索引器、检索器、用户接口等四个功能模块。
1、搜索器
搜索器也叫网络蜘蛛,是搜索引擎用来爬行和抓取网页的一个自动程序,在系统后台不停歇地在互联网各个节点爬行,在爬行过程中尽可能快的发现和抓取网页。
2、索引器
它的主要功能是理解搜索器所采集的网页信息,并从中抽取索引项。
3、检索器
其功能是快速查找文档,进行文档与查询的相关度评价,对要输出的结果进行排序。
4、用户接口
它为用户提供可视化的查询输入和结果输出的界面。
二、搜索引擎的主要模块及功能
1、爬虫:从互联网爬取原始网页数据,存储于文档知识库服务器。
2、文档知识库服务器:存储原始网页数据,通常是分布式Key-Value数据库,能根据URL/UID快速获取网页内容。
3、索引:读取原始网页数据,解析网页,抽取有效字段,生成索引数据。索引数据的生成方式通常是增量的,分块/分片的,并会进行索引合并、优化和删除。生成的索引数据通常包括:字典数据、倒排表、正排表、文档属性等。生成的索引存储于索引服务器。
4、索引服务器:存储索引数据,主要是倒排表,通常是分块、分片存储,并支持增量更新和删除。数据内容量非常大时,还根据类别、主题、时间、网页质量划分数据分区和分布,更好地服务在线查询。
5、检索:读取倒排表索引,响应前端查询请求,返回相关文档列表数据。
6、排序:对检索器返回的文档列表进行排序,基于文档和查询的相关性、文档的链接权重等属性。
7、链接分析:收集各网页的链接数据和锚文本(Anchor Text),以此计算各网页链接评分,最终会作为网页属性参与返回结果排序。
8、网页去重:提取各网页的相关特征属性,计算相似网页组,提供离线索引和在线查询的去重服务。
9、网页反垃圾:收集各网页和网站历史信息,提取垃圾网页特征,从而对在线索引中的网页进行判定,去除垃圾网页。
10、查询分析:分析用户查询,生成结构化查询请求,指派到相应的类别、主题数据服务器进行查询。
11、页面描述/摘要:为检索和排序完成的网页列表提供相应的描述和摘要。
12、前端:接受用户请求,分发至相应服务器,返回查询结果。