欢迎光临本站!

典型搜索引擎的实现原理

来源:技术探讨    更新时间:2019-12-19 16:04:22    编辑:老王    浏览:3012

  虽然对于信息检索,已经有不少很好的算法和技术,但由于互联网信息资源数量庞大、更新速度较快以及分布存储方式等特点使得搜索引擎必须在原来传统的信息检索算法基础上加以扩展,通过一些新技术实现信息搜集、建立和更新索引等工作。针对网络上巨大的信息资源数量,搜索引擎还应该完成检索结果的区分和排序工作,把最符合要求和最相关网页链接地址优先提供给用户。

  那么最典型的搜索引擎结构是怎样实现这些目标的?图1给出了一个典型的搜索引擎原理的框架,它基本包括机器人、索引、检索三大模块。

典型搜索引擎的实现原理

  机器人模块


  任何搜索引擎都会依赖一个机器人模块来完成它的信息获取工作,以期为将来的服务提供效据。而机器人就是一个可以浏览网页的程序,它很像真人的测览过程,首先打开一个网页,然后再通过网页上的链接去浏览其它不同的网页,如此往复。工作的时候,机器人把开始确定的一组网页链接作为浏览的起始地址,然后将网页获取过来,抽取页面中出现的链接,并通过…一定算法决定下…步要访问哪些链接同时机器人将已经访问的页面存储到自己的页百数据库里去。之后,机器人则继续重复这个访问过程,直至结束。

  在决定访问链接顺序的过程中,最常见算法有:深度优先、广度优先、有限深度/广度策略。当然,一般搜索引擎的机器人在实现的过程中,引入链长比(超链接数目与文档长度的比值),只取链长比小于某门限值的页面,即只采集内容页面,而不采集目录页面。在采集文档的同时,记录各文档的地址信息、修改时间、文档长度等状态信息,用于站点资源的监视和资料库的更新。在采集过程中,还可以构造适当的启发( heuristic)策略,来指导机器人的路径选择和采集范,以减少文档采集的育目性。

  索引模块


  机器人访问完网页并将其内容和地址存入网页数据库以后,就要对其建立索引。索引模块总的来说是通过分析获取的网页,排除HTML等语言的标志符号,将出现的所有字或者词抽取出来,并记录每个字词的出现网址及相应位置,最后将结果存人索引数据库,就是-个很大的查询表,上面记录某个特定字词在互联网上出现的组位置信息。

  对于英文搜索引擎,由于是以单词为语言的基本单位,因此一般建立索引采用的都是词表法,即首先建立一个词表,然后将对应单词的出现位置记录下来。而检索的时侯就是以这些词语作为检萦人口,并通过位置匹配可以实现多个词语的组合检索。但对于中文搜索引擎来说,由于语言的基本单位是汉字,在最底层往往采用的是字表法。

  和词表法相似,先建立个汉字字表(一般采用GB2312汉字集)然后对于网页中出现的汉字均记录在相应的字表项内。当检索的时候,采取字索引之间的位置匹配完成词语的检索。为了提高检索速度,般还会在字索引的基础上建立一些词索引,有的是根据用户的提问动态生成已检索词的词索引,有的则是建立一个常用词表,然后生成这些词的索引,当然,无论是英文系统还是中文系统都会建立一个停用词表,以节省存储空间和提高检索效率。

  检索模块


  作为检索模块,首先分析用户检索时给出的提问式,再访问搜索引擎已经建立的索引,并通过一定的匹配算法,获得相应的检索结果。一般还会对检索结果进行排序,按照重要程度将结果有序地返回给月户。具体来说,当用户进行检索的时候,一般使用的是纯自然语言词汇或者是自然语言词汇组成的布尔逻辑式。对于前者,可以直接利用检索算法查询索引数据库中的词紫引,或者是利用单字索引进行位置匹配,以获得检索结果。而对于后者,则首先要分析检索式的逻辑关系,分别对检索式中的各个检索词进行检索,最后再選过逻辑运算获得最终结果。

  由于网络上信息数量非常庞大,可能会产生一个相当大的结果集,那么如何精简结果以及如何将最重要的结果首先返回给用户就显得十分重要。最常用的方法是将结果按相关度进行排序把引擎认为最相关的结果放在最前面。相关度计算有很多的算法,其中一个很重要的算法就是词频法,即通过计算网页中检索词的出现频率来决定该网页的相关程度,裣索词出现次数越多则说明该网页越重要。虽然这种算法有很多缺陷,往往不能达到最好的效是,但由于计算网页中一个词的词频十分简单,使得该算法很容易实现。当获得检索结果以后,访问网页数据库,获得关网页,并按照相应的格式和顺序生成结果网页,最终提供给用户,完成整个检索过程。

评论区

表情

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

相关内容

点击排行

随机新闻

评论排行榜