zoukankan      html  css  js  c++  java
  • 搜索引擎工作原理

    搜索引擎的工作步骤可以分为以下四步:爬行和抓取->建立索引->搜索词处理->排序

    1. 爬行和抓取

      搜索引擎派出一个能够在网上发现新网页并抓文件的程序,这个程序通常称之为蜘蛛(Spider)。搜索引擎从已知的数据库出发,就像正常用户的浏览器一样访问这些网页并抓取文件。搜索引擎通过这些爬虫去爬互联网上的外链,从这个网站爬到另一个网站,去跟踪网页中的链接,访问更多的网页,这个过程就叫爬行。这些新的网址会被存入数据库等待搜索。所以跟踪网页链接是搜索引擎蜘蛛(Spider)发现新网址的最基本的方法,所以反向链接成为搜索引擎优化的最基本因素之一。搜索引擎抓取的页面文件与用户浏览器得到的完全一样,抓取的文件存入数据库。

      蜘蛛抓取网页策略1:深度优先

      什么是深度优先?简单的说,就是搜索引擎蜘蛛在一个页面发现一个连接然后顺着这个连接爬下去,然后在下一个页面又发现一个连接,然后就又爬下去并且全部抓取,这就是深度优先抓取策略。大家看下图

    深度优先

    在上图中就是深度优先的示意图,我们假如网页A在搜索引擎中的权威度是最高的,假如D网页的权威是最低的,如果说搜索引擎蜘蛛按照深度优先的策略来抓取网页,那么就会反过来了,就是D网页的权威度变为最高,这就是深度优先!

      蜘蛛抓取网页策略2:宽度优先

      宽度优先比较好理解,就是搜索引擎蜘蛛先把整个页面的链接全部抓取一次,然后在抓取下一个页面的全部链接。

    宽度优先

    上图呢,就是宽度优先的示意图!这其实也就是大家平时所说的扁平化结构,大家或许在某个神秘的角落看到一篇文章,告诫大家,网页的层度不能太多,如果太多会导致收录很难,这就是来对付搜索引擎蜘蛛的宽度优先策略,其实就是这个原因。

      蜘蛛抓取网页策略3:权重优先  

      如果说宽度优先比深度优先好,其实也不是绝对的,只能说是各有各的好处,现在搜索引擎蜘蛛一般都是两种抓取策略一起用,也就是深度优先+宽度优先,并且在使用这两种策略抓取的时候,要参照这条连接的权重,如果说这条连接的权重还不错,那么就采用深度优先,如果说这条连接的权重很低,那么就采用宽度优先!

      那么搜索引擎蜘蛛怎样知道这条连接的权重呢?

      这里有2个因素:1、层次的多与少;2、这个连接的外链多少与质量;

      那么如果层级太多的链接是不是就不会被抓取呢?这也不是绝对的,这里边要考虑许多因素,我们在后边的进阶中会降到逻辑策略,到时候我在详细的给大家说!

      蜘蛛抓取网页策略4:重访抓取

      我想这个比较好理解,就是比如昨天搜索引擎的蜘蛛来抓取了我们的网页,而今天我们在这个网页又加了新的内容,那么搜索引擎蜘蛛今天就又来抓取新的内容,这就是重访抓取!重访抓取也分为两个,如下:

      1、全部重访

      所谓全部重访指的是蜘蛛上次抓取的链接,然后在这一个月的某一天,全部重新去访问抓取一次!

      2、单个重访

      单个重访一般都是针对某个页面更新的频率比较快比较稳定的页面,如果说我们有一个页面,1个月也不更新一次。

    那么搜索引擎蜘蛛第一天来了你是这个样子,第二天,还是这个样子,那么第三天搜索引擎蜘蛛就不会来了,会隔一段时间在来一次,比如隔1个月在来一次,或者等全部重访的时候在更新一次。

    2. 建立索引

      建立索引分两步:数据分析与数据索引  

      数据分析

      数据分析系统,是处理搜索引擎蜘蛛抓取回来的网页,那么数据分析这一块又分为了一下几个:

      1、网页结构化

      简单的说,就是把那些html代码全部删掉,提取出内容。

      2、消噪

      消噪是什么意思呢?在网页结构化中,已经删掉了html代码,剩下了文字,那么消噪指的就是留下网页的主题内容,删掉没用的内容,比如版权!

      3、查重

      查重比较好理解,就是搜索引擎查找重复的网页与内容,如果找到重复的页面,就删除。

      4、分词

      分词是神马东西呢?就是搜索引擎蜘蛛在进行了前面的步骤,然后提取出正文的内容,然后把我们的内容分成N个词语,然后排列出来,存入索引库!同时也会计算这一个词在这个页面出现了多少次。

      5、链接分析

      这一个步骤就是我们平时所做的做烦躁的工作,搜索引擎会查询,这个页面的反向链接有多少,导出链接有多少以及内链,然后给这个页面多少的权重等。

      蜘蛛抓取的页面文件分解、分析,并以巨大表格的形式存入数据库,这个过程即是索引(index).在索引数据库中,网页文字内容,关键词出现的位置、字体、颜色、加粗、斜体等相关信息都有相应记录。
     
    3. 搜索词处理
     用户在搜索引擎界面输入关键词,单击“搜索”按钮后,搜索引擎程序即对搜索进行处理,如中文特有的分词处理,去除停止词,判断是否需要启动整合搜索,判断是否有拼写错误或错别字等情况。搜索词的处理必须十分快速。
     
    4. 排序
      对搜索词处理后,搜索引擎程序便开始工作,从索引数据库中找出所有包含搜索词的网页,并且根据排名算法计算出哪些网页应该排在前面,然后按照一定格式返回到“搜索”页面。
      谷歌用的是Page Rank算法。
     
    参考内容:
      1. http://baike.baidu.com/view/3492159.htm
      2. http://www.chinaz.com/web/2012/0221/236263.shtml
  • 相关阅读:
    个人永久性免费-Excel催化剂功能第86波-人工智能之图像OCR文本识别全覆盖
    git删除远程仓库的文件或目录
    使用document.execCommand复制内容至剪贴板
    使用clipboard.js实现复制内容至剪贴板
    正则匹配目标字符串不等于某些特定的字符串
    substr与substring的用法
    使用hexo搭建个人博客
    git修改最后一次commit的内容
    gulp压缩文件最简示例
    gulp最简示例
  • 原文地址:https://www.cnblogs.com/vincently/p/5420164.html
Copyright © 2011-2022 走看看