你所不了解的搜索引擎

搜索引擎指的是蜘蛛程序沿着链接爬行和抓取网上的大量网页内容,存入数据库,经过复杂的算法进行预处理,建立网站索引目录,当用户在搜索框输入关键字之后,搜索引擎通过相关性的排序算法从索引库中找到最符合用户需求的页面按照一定权重展示给用户的过程。蜘蛛爬行、页面收录及排序都是自动处理的。

搜索引擎面临的问题或瓶颈

1、用户搜索内容时必须反应快而准确。在天量的互联网网页世界里面,每天有无数的页面被创建、更新、删除、要返回最有用及最新的内容是一个巨大而繁琐的挑战,搜索引擎蜘蛛更新一次数据库中的页面需要花费很长的时间。因此为了提升用户体验,保证搜索质量,搜索引擎从网站权重、是否官方认证、历史快照、搜索频次等几个方面做了预处理,因此无论多么优秀的网站被搜索引擎收录及展现在搜索结果中都需要一段时间的蜘蛛爬行过程。

2、海量的数据存储。除了天量网页需要蜘蛛爬行之外,网站的结构也是需要蜘蛛记忆的,复杂冗余、逻辑缠绕的网站逻辑会降低蜘蛛的爬行效率,以及蜘蛛在数据库建立索引等过程,引擎蜘蛛通过权重的分配、信任外链、网站目录提交等方案,提高引擎蜘蛛的收录效率。因此如果网站在很长一段时间内都没有被搜索引擎收录,需要seoer检查是否因为网站内链逻辑是否过于复杂,导致蜘蛛爬行过程漫长。

3、索引处理快速有效,具有高度扩展性。在引擎蜘蛛抓取和存储后,要做复杂的算法筛选过滤,提取关键词计算相关性,然后进行树状存储,但是网站会随时进行更新,索引数据也需要响应这些更新,并重新计算相关性和索引,因此对引擎服务器的性能提出了更高的挑战。

4、判断用户意图及人工智能。前面几个可以通过一定的算法和硬件的发展进行有效解决,智能识别用户意图还处在机器学习阶段,这也是搜索引擎公司未来的发展方向,在大数据和区块链技术的不断完善下,搜索引擎会更懂你,那么如果网站更懂搜索引擎,间接的也会更懂用户!

搜索结果展示

搜索结果页面主体有两部分,一部分是广告,另一部分是自然搜索结果。广告及推广部分一般在页面的右边和前几个搜索结果里,并且会在结果的末尾注明“广告”或者“赞助商链接”。一般情况下右侧广告最多有8个,上部广告最多有3个。

搜索广告在网络营销行业经常被称为PPC,由广告主针对某些关键词进行竞价,通过点击数进行付费,具有精准营销的思维。受到大多数公司的欢迎。

SEOer最关心是自然搜索结果。统计数据显示,自然搜索结果总点击访问量远大于广告点击数,因此seo对于一个企业的网络营销效果有不可忽视的作用。

搜索引擎会根据权重对站点的展现形式做一些调整,让用户可以直达目标页,也为网站导入了巨大的流量资源,一般有标题摘要、缩略图标题摘要、二级页面缩进列表、全站链接、迷你全站链接、独立面板One-box、富摘要、面包屑导航等。

搜索引擎工作原理

搜索引擎的工作原理非常复杂,大体上可以分为三个阶段:爬行和抓取、预处理、排名。

爬行和抓取

引擎蜘蛛通过跟踪链接访问网页,获得页面HTML代码存入数据库。

搜索引擎用来爬行和访问页面的程序被称为蜘蛛(spider),也称为机器人(bot)。

搜索引擎模拟用户直接通过网站地址Get网站信息,得到信息后将代码存入原始页数据库,为了提高爬行数据和效率,会同时使用多个蜘蛛进行分布式爬行。

在访问站点是会首先嗅探该站点根目录下有没有robots.txt文件。读取该文件,蜘蛛根据该文件的协议访问整个站点,如果没有此文件,蜘蛛默认访问整个站点。

搜索引擎会标注自己的访问身份,可以再后台的日志找到搜索引擎的爬行痕迹。

搜索引擎一般会采取两种策略去爬行整个站点:1. 深度优先; 2. 广度优先;通常情况下是混合使用者两种策略,可以照顾到不同类型的站点。

理论上蜘蛛可以爬行所有的页面,但是实际上蜘蛛爬行会自己的边界和规则,seoer的主要职责是适应蜘蛛爬行规则,让蜘蛛尽可能多的收录自己的站点信息。

为了避免重复爬行和抓取网址,搜索引擎会建立一个地址库,记录以及被发现还没有被抓取的页面,以及以及被抓取的页面。地址库中的URL的来源一般有这样几种情况:

1、人工录入的种子站点。

2、通过爬行解析出来的网站外链,与地址库中的数据进行比对,如果地址库没有则是新的网址。

3、站长通过搜索引擎网页提交表格提交进来的网址。

预处理

索引程序对抓取来的页面数据进行文字提取、中文分词、网站层级分析、索引建立等处理。

Get到网站内容后,蜘蛛会完成下面几件事:

1、提取关键字,通过解析代码,找到内容块,进行分类分权重存储。

2、中文分词,分词是中文搜索特有的步骤。搜索引擎存储和处理页面及用户搜索都是以词为基础进行的,英文天然以空格进行分割,这样才能有效的进行意义识别。中文分词一般有两种方法:基础词典库匹配和统计数据匹配。

3、去停止词,无论是英文还是中文,页面里面会出现一些频率很高但是对内容意义没有任何影响的词,如‘的’、‘地’之类的,英文里如‘the’、‘a’、‘an’等词语。这些词语对用户的意义识别没有任何帮助,剔除之后也会降低服务器的检索压力。

4、消除噪音,有些内容对网站的常规内容,对网站的产品或主题没有任何贡献,比如版权声明文字、导航条、广告等需要对这部分内容进行剔除。

5、去重,进行分词操作后,有些意义相近的词语会在站点内反复出现,但是他们代表同样的意义,所以需要对这些词语进行归类去重。

6、正向索引,经过文字层层过滤后搜索引擎得到独特的、能反映页面主体内容、以词为单位的内容集合,按照词频提取关键字并配权重存储在数据库,按照页面的层级顺序进行建立的关键字索引库就是正向索引。

7、倒排索引,通过关键词对出现关键词的文件进行排练组合,形成文件索引列表,这叫做倒排索引,可以用于用户搜索。

8、链接关系计算,这是预处理很重要的一环。现在所有的主流搜索引擎排名因素中都包含网页之间的链流动信息,通过这些链信息进行权重计算,Google PR值就是这种关系价值的一种体现。

9、特殊文件处理,对于除html文件外的文件类型,引擎蜘蛛现在没没有办法识别,所以都会剔除掉。

排名

用户输入关键字之后,排名程序会计算相关性,获取关键字矩阵,然后通过索引获取站点信息,按照一定的格式生成搜索结果页。

排名的过程是和用户互动的过程,引擎智能会根据历史搜索和当前搜索进行联想匹配得到一个最佳搜索结果呈现给用户。

1、搜索词处理,对搜索词进行处理①中文分词②去停止词③指令处理④拼写错误纠正⑤整合搜索触发。

2、文件匹配,经过处理后,搜索引擎得到一些关键词集合,通过索引找到包含关键词的文件,并计算相关性进行排序。

3、初始子集选择,因为搜索结果是巨量的文件,通常搜索结果页面只展示前100个,百度会返回将近1000条记录,依靠权重找到最多1000条文件记录,作为筛选初始子集。

4、相关性计算,计算相关性是排名过程中最重要的一步,也是seoer优化的重点范围。①关键词常用程度,利用历史搜索算出关键词的热度。②词频和密度,一般认为文件中没有关键词堆砌的情况下关键词出现的频率越高说明相关性也越高。③关键词位置和形式,是否出现在页面权重比较高的位置,比如title、H1、strong等,也是前端需要优化的重点范畴。④关键词距离,分词计算后的关键词完整匹配出现,说明最相关,其次是分词之后两个词的距离。⑤链接分析及页面权重,除了页面本身的因素外,页面的外链也影响重大,外链权重高,关键词价值越高,页面有越多以搜索词为锚文字的导入链接,说明页面的相关性越强。

5、排名过滤及调整,经过相关性计算,大体排名已经被确定,之后搜索引擎可能还要进行一些过滤算法,对排名进行轻微的调整,其中最主要的是对作弊站点施加惩罚。

6、排名显示,排名确定后,排名程序会调用原始页面的标题标签、说明标签、快照日期等数据显示在页面上,有时也需要动态生成页面摘要。

7、搜索缓存,用户的关键词往往在一段时间内是重复的,按照二八定律,长尾理论,最常见的搜索词没有占到80%那么多,但是通常也有比较粗大的头部,为了提高搜索效率,引擎会将热词进行缓存,当用户搜索时可以直接从缓存数据中取出,不必再次进行相关性计算,大大提高了搜索效率。

8、查询及点击日志,用户的搜索行为都会形成日志进行记录,这些日志对于搜索结果的质量起了重要的作用,引擎会自动计算相关权重,并在下一次搜索里影响排名,所以好的网站是持续流量的基石。

链接在搜索中的算法原理

基于一个假设:好的网站很少会链接到坏的网站,反之则不成立,很多垃圾网站会链接到高权威、高信任指数的网站,试图提高自己的信任指数。用现代的话说就是信用背书,利用信用背书可以提高自己网站的权重值,获得较好的排名。在排序算法中比重越来越高,seoer应该重视外链在站点内的布局,及自己的站点被外链引用的频率。

高级搜索指令

1、把搜索词放在双引号里面,代表完全匹配不进行分词操作,连顺序也必须完全匹配。百度和Google都支持这个指令。eg: "和平是我的梦想"

2、减号,减号(-)代表搜索不包含减号后面词语的内容,使用这个指令时减号前面必须是空格,减号后面没有空格,紧跟需要排除的词。Google和百度都支持这个指令。

3、星号,星号(*)是常用的通配符,也可以用在搜索中。百度不支持星号匹配。

4、inurl,用于搜索查询词出现在url中的页面。百度和Google都支持inurl指令。

5、inanchor, 指令返回的结果是导入链接文字中包含搜索词的页面。百度不支持。

6、intitle, 指令返回的页面中title标签包含的关键词页面。百度和Google和百度都支持该指令。

7、allintitle, 返回页面title标签同时包含多个关键字的结果页面,eg: allintitle:SEO 建站大全

8、allinurl, 返回地址中同时包含多个关键词的结果页面, eg:allinurl admin login。

9、filetype,该指令用于搜索特点格式的文件,Google和百度都支持,eg:filetype:doc 辣子鸡丁,百度目前只支持pdf、doc、xls、ppt、rtf、all等格式,而Google则支持所有能索引的文件格式,包括html、php等。

10、site,这个指令是seoer最熟悉的高级搜索指令了,用来搜索某个域名下的所有文件,这个指令是查询网站收录页面最有效直接的方法。不过site:指令并不准确,尤其是Google中,返回的收录页面经常有大的波动,只能作为参考。

11、link,利用这个指令可以搜索某个url的反向链接,既可以包括内部链接,也可以包括外部链接。

你可能感兴趣的:(你所不了解的搜索引擎)