搜索引擎的工作原理是什么?被提到这个问题的时候,小编当时只是说出了:抓取数据、分词、去重、收录、展现这几个零散的知识点,这些基础的内容,长时间不去温习,加上平时用不到,就逐渐忘了。但是一个优秀的SEOer,要做到时刻都能系统的说出搜索引擎的工作原理才行。现在马兔子就整理了一下搜索引擎的主要功能板块及搜索排名原理,带大家温习下:
一、搜索引擎中各关键功能模块功能简介如下:
(1)爬虫:从互联网爬取原始网页数据,存储于文档知识库服务器。
(2)文档知识库服务器:存储原始网页数据,通常是分布式Key-Value数据库,能根据URL/UID快速获取网页内容。
(3)索引:读取原始网页数据,解析网页,抽取有效字段,生成索引数据。索引数据的生成方式通常是增量的,分块/分片的,并会进行索引合并、优化和删除。生成的索引数据通常包括:字典数据、倒排表、正排表、文档属性等。生成的索引存储于索引服务器。
(4)索引服务器:存储索引数据,主要是倒排表,通常是分块、分片存储,并支持增量更新和删除。数据内容量非常大时,还根据类别、主题、时间、网页质量划分数据分区和分布,更好地服务在线查询。
(5)检索:读取倒排表索引,响应前端查询请求,返回相关文档列表数据。
(6)排序:对检索器返回的文档列表进行排序,基于文档和查询的相关性、文档的链接权重等属性。
(7)链接分析:收集各网页的链接数据和锚文本(Anchor Text),以此计算各网页链接评分,最终会作为网页属性参与返回结果排序。
(8)网页去重:提取各网页的相关特征属性,计算相似网页组,提供离线索引和在线查询的去重服务。
(9)网页反垃圾:收集各网页和网站历史信息,提取垃圾网页特征,从而对在线索引中的网页进行判定,去除垃圾网页。
(10)查询分析:分析用户查询,生成结构化查询请求,指派到相应的类别、主题数据服务器进行查询。
(11)页面描述/摘要:为检索和排序完成的网页列表提供相应的描述和摘要。
(12)前端:接受用户请求,分发至相应服务器,返回查询结果。
二、搜索引擎工作原理(工作流程)
索引擎工作流程主要有数据采集、数据预处理、数据处理、结果展示等阶段。在各工作阶段分别使用了网络爬虫、中文分词、大数据处理、数据挖掘等技术。
网络爬虫也被称为蜘蛛或者网络机器人,它是搜索引擎抓取系统的重要组成部分。网络爬虫根据相应的规则,以某些站点作为起始站点通过各页面上的超链接遍历整个互联网,利用URL弓I用根据广度优先遍历策略从一个html文档爬行到另一个html文档来抓取信息。
中文分词是中文搜索引擎中一个相当关键的技术,在创建索引之前需要将中文内容合理的进行分词。中文分词是文本挖掘的基础,对于输入的一段中文,成功的进行中文分词,可以达到电脑自动识别语句含义的效果。
大数据处理技术是通过运用大数据处理计算框架,对数据进行分布式计算。由于互联网数据量相当庞大,需要利用大数据处理技术来提高数据处理的效率。在搜索引擎中,大数据处理技术主要用来执行对网页重要度进行打分等数据计算。
数据挖掘就是从海量的数据中采用自动或半自动的建模算法,寻找隐藏在数据中的信息,是从数据库中发现知识的过程。数据挖掘一般和计算机科学相关,并通过机器学习、模式识别、统计学等方法来实现知识挖掘。在搜索引擎中主要是进行文本挖掘,搜索文本信息需要理解人类的自然语言,文本挖掘指从大量文本数据中抽取隐含的、未知的、可能有用的信息。
三、用户搜索时结果展现排序方式(搜素引擎排序方式)
1、前言
Google和Baidu的崛起,很大程度上是由于他们使用了较以往搜索引擎更加优秀的排序技术。由于通常人们只会关注搜索结果的前10项或20项,所以将与用户查询的结果最相关的信息排列在结果的前排是尤为重要的。比如说以.jp, .de和.edu域名下的网页通常会比.com和.net域名下的网页更加有用[1] 。如何使用户关注的网页排列在搜索结果中靠前排列,使各个搜索引擎公司不断改进优化的方向。作者通过阅读论文与网络资料,将总结并介绍几种比较主要的排序算法:词频位置加权排序算法,链接分析排序算法。
2、词频位置加权排序算法
此类技术是由传统的情报检索和技术基础上发展而来的,即用户输入的检索词在网页中出现的频率越高,出现的位置越重要,那么就认为该网页与此检索词的相关度越高,其在搜索结果出现的位置越靠前,早期的搜索引擎如InfoSeek, Excite, Lycos都使用此类排序方法。
2.1、词频加权
词频加权即根据用户提供的检索词在网页中出现的次数作为判定网页相关度权值高低的依据。词频加权的方法有绝对词频加权、相对词频加权、反词频加权、基于词分辨值加权等等。对于单一词搜索引擎, 只用单纯地计算一个词在网页中的出现频率就可给定权值,而对于具有进行逻辑组配功能的搜索引擎, 则必须用其它的加权方法。因为用组配的检索式检索时, 检索结果跟检索式中的每个检索词相关, 而每个检索词在所有的网页中出现的总频率是不同的,如果按总权值来排序, 就会造成结果的不相关。这可以通过其它多种方法解决。例如, 利用相对词频加权原理, 可以通过对大量网页的统计, 把越是在所有网页中出现频率高的词赋予一个较低的初始值相对地, 在所有网页中出现频率低的词, 给一个较高的权值[2]。
2.2、词位置加权
通过对词在网页中不同位置和版式, 给予不同的权值, 从而根据权值来确定所搜索的结果和搜索词的相关程度。词的位置包括网页标题元、网页描述关键字元、正文标题、正文内容、文本链接、标识等, 版式包括字体、字号、有无加粗强调等。例如要了解排序技术, 在搜索“排序技术” 时, 有两个结果,一个标题是《搜索引擎的排序技术》, 另一篇文章的标题是《Web信息检索》, 但内容有个别地方提到搜索引擎的排序技术, 显然第一个结果的相关性更大,“排序技术” 这个词在第一个结果中给予的权值应大一些。
2.3、此类算法的优缺点
此类方法的主要优点就是易用易实现,而且发展的也最成熟,基本上目前所有的搜索引擎排序核心技术的基础。但是由于目前网络的内容质量无法得到保证,为使其网页在搜索引擎中排名靠前,在网页中加入和背景颜色一样的层,并填入大量热门关键词, 人来浏览网页时完全看不到,但搜索引擎在标引时, 却能发现。这种问题目前已经得到一定程度的改善,但仍然未能完全根除。
3、链接分析排序
链接分析排序算法的思想,其实来自于论文文献索引机制,即一篇论文或文献被引用的次数越多,那么其学术价值就越高,同样类比到网页,如果指向某网页的链接越多,那么该网页的重要性就越高。链接分析算法主要分为基于随机漫游模型的, 比如PageRank算法;基于Hub和Authority相互加强模型的, 如HITS及其变种;基于概率模型的, 如SALSA; 基于贝叶斯模型的, 如贝叶斯算法及其简化版本。下面将分别对这几种算法进行介绍。
3.1、PageRank算法
Google搜索引擎有两个重要的特征使得它可以得到高准确度的结果。
一,它利用网络的链接特性来计算网页的质量排名,这就是PageRank;
二,它利用链接来改进搜索结果。
简单的PageRank原理即如图1所示的那样,从网页A导向网页B的链接被看作是对页面A对页面B的支持投票,Google根据这个投票数来判断页面的重要性。可是 Google 不单单只看投票数(即链接数),对投票的页面也进行分析。重要性高的页面所投的票的评价会更高。
3.2、Hits算法
PageRank算法中对于链接一视同仁,认为每个链接所贡献的权值都是相同的,而在实际生活中,有些链接是指向广告,而有些链接则指向权威网页。可见,均匀分布的权值并不符合实际情况。于是康奈尔大学的Jon Kleinberg博士于1998年首先提出Hits算法。
HITS算法对网页进行质量评估的结果反映在它对每个网页给出的两个评价数值:内容权威度(Authority)和链接权威度(Hub)上。
内容权威度与网页自身直接提供内容信息的质量相关,被越多网页所引用的网页,其内容权威度越高;与之相对应的,链接权威度与网页提供的超链接的质量相关,引用越多内容质量高网页的网页,其链接权威度越高。将查询提交给传统的基于关键字匹配的搜索引擎.搜索引擎返回很多网页,从中取前n个网页作为根集合。把根集合中的页面所指向的页面都包括进来,再把指向根集合中页面的页面也包括进来,这样就扩充成了基础集合。HITS算法输出一组具有较大Hub值的网页和具有较大权威值的网页[6]。
与PageRank等实用性算法不同,HITS算法更大程度上是一种实验性质的尝试。表面上看,HITS 算法对需排序的网页数量较小,但由于需要从基于内容分析的搜索引擎中提取根集并扩充基本集,这个过程需要耗费相当的时间,而PageRank 算法表面上看,处理的数据数量上远远超过了HITS算法,但由于其计算量在用户查询时已由服务器端独立完成,不需要用户端等待,基于该原因,从用户端等待时间来看,PageRank算法应该比HITS 要短[7]。
3.3其他链接分析排序算法
PageRank算法是基于用户随机的向前浏览网页的直觉知识,HITS算法考虑的是Authoritive网页和Hub网页之间的加强关系。实际应用中,用户大多数情况下是向前浏览网页,但是很多时候也会回退浏览网页。基于上述直觉知识,R. Lempel和S. Moran提出了SALSA(Stochastic Approach for Link-Structure Analysis)算法,考虑了用户回退浏览网页的情况,保留了PageRank的随机漫游和HITS中把网页分为Authoritive和Hub的思想,取消了Authoritive和Hub之间的相互加强关系。
Allan Borodin等提出了完全的贝叶斯统计方法来确定Hub和Authoritive网页。假定有M个Hub网页和N个Authority网页,可以是相同的集合。每个Hub网页有一个未知的实数参数,表示拥有超链的一般趋势,一个未知的非负参数,表示拥有指向Authority网页的链接的趋势。每个Authoritive网页j,有一个未知的非负参数,表示j的Authority的级别。统计模型如下,Hub网页i到Authority网页j的链接的先验概率如下给定:P(i,j)=Exp(+)/(1+Exp(+))。Hub网页i到Authority网页j没有链接时,P(i,j)=1/(1+Exp(+))。从以上公式可以看出,如果很大(表示Hub网页i有很高的趋势指向任何一个网页),或者和都很大(表示i是个高质量Hub,j是个高质量的Authority网页),那么i->j的链接的概率就比较大。
请添加微信后购买资源
马兔子微信