搜索引擎,通常指的是收集了因特网上几千万到几十亿个网页并对网页中的每一个词进行索引,建立索引数据库的全文搜索引擎。当用户查找某个关键词的时候,所有在页面内容中包含了该关键词的网页都将作为搜索结果被搜出来。在经过复杂的算法进行排序后,这些结果将按照与搜索关键词的相关度高低,依次排列。根据自己的优化程度,获得相应的名次。接下来就听听来自网十科技的分享。
原理概述
在搜索引擎的后台,有一些用于搜集网页信息的程序。所收集的信息一般是能表明网站内容的关键词或者短语。接着将这些信息的索引存放到数据库中。
搜索引擎的系统架构和运行方式吸收了信息检索系统设计中许多有价值的经验,也针对万维网数据和用户的特点进行了许多修改,如右图所示的搜索引擎系统架构。其核心的文档处理和查询处理过程与传统信息检索系统的运行原理基本类似,但其所处理的数据对象即万维网数据的繁杂特性决定了搜索引擎系统必须进行系统结构的调整,以适应处理数据和用户查询的需要。
工作原理
爬行和抓取
搜索引擎派出一个能够在网上发现新网页并抓文件的程序,这个程序通常称之为蜘蛛。搜索引擎从已知的数据库出发,就像正常用户的浏览器一样访问这些网页并抓取文件。搜索引擎通过这些爬虫去爬互联网上的外链,从这个网站爬到另一个网站,去跟踪网页中的链接,访问更多的网页,这个过程就叫爬行。这些新的网址会被存入数据库等待搜索。所以跟踪网页链接是搜索引擎蜘蛛发现新网址的最基本的方法,所以反向链接成为搜索引擎优化的最基本因素之一。搜索引擎抓取的页面文件与用户浏览器得到的完全一样,抓取的文件存入数据库。
建立索引
蜘蛛抓取的页面文件分解、分析,并以巨大表格的形式存入数据库,这个过程即是索引.在索引数据库中,网页文字内容,关键词出现的位置、字体、颜色、加粗、斜体等相关信息都有相应记录。
搜索词处理
用户在搜索引擎界面输入关键词,单击“搜索”按钮后,搜索引擎程序即对搜索词进行处理,如中文特有的分词处理,去除停止词,判断是否需要启动整合搜索,判断是否有拼写错误或错别字等情况。搜索词的处理必须十分快速。
排序
对搜索词处理后,搜索引擎程序便开始工作,从索引数据库中找出所有包含搜索词的网页,并且根据排名算法计算出哪些网页应该排在前面,然后按照一定格式返回到“搜索”页面。
再好的搜索引擎也无法与人相比,这就是为什么网站要进行搜索引擎优化。没有搜索引擎关键词排名的帮助,搜索引擎常常并不能正确的返回最相关、最权威、最有用的信息。
数据结构
搜索引擎的核心数据结构为倒排文件,倒排索引是指用记录的非主属性值来查找记录而组织的文件叫倒排文件,即次索引。倒排文件中包括了所有副键值,并列出了与之有关的所有记录主键值,主要用于复杂查询。与传统的SQL查询不同,在搜索引擎收集完数据的预处理阶段,搜索引擎往往需要一种高效的数据结构来对外提供检索服务。而现行最有效的数据结构就是“倒排文件”。倒排文件简单一点可以定义为“用文档的关键词作为索引,文档作为索引目标的一种结构。
全文搜索引擎
在搜索引擎分类部分我们提到过全文搜索引擎从网站提取信息建立网页数据库的概念。搜索引擎的自动信息搜集功能分两种。一种是定期搜索,即每隔一段时间,搜索引擎主动派出“蜘蛛”程序,对一定IP地址范围内的互联网站进行检索,一旦发现新的网站,它会自动提取网站的信息和网址加入自己的数据库。
另一种是提交网站搜索,即网站拥有者主动向搜索引擎提交网址,它在一定时间内定向向你的网站派出“蜘蛛”程序,扫描你的网站并将有关信息存入数据库,以备用户查询。由于搜索引擎索引规则发生了很大变化,主动提交网址并不保证你的网站能进入搜索引擎数据库,因此目前最好的办法是多获得一些外部链接,让搜索引擎有更多机会找到你并自动将你的网站收录。
当用户以关键词查找信息时,搜索引擎会在数据库中进行搜寻,如果找到与用户要求内容相符的网站,便采用特殊的算法——通常根据网页中关键词的匹配程度,出现的位置/频次,链接质量等——计算出各网页的相关度及排名等级,然后根据关联度高低,按顺序将这些网页链接返回给用户。