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