搜索引擎框架简介

http://www.chinabi.net/blog/user1/105/1140.html

 

1. 1 机器人模块
任何搜索引擎都会依赖一个机器人模块来完成它的信息获取工作, 以期为将来的服务提供数据。而机器人就是一个可以浏览网页的程序, 它很像真人的浏览过程, 首先打开一个网页, 然后再通过网页上的链接去浏览其它不同的网页, 如此往复。工作的时候, 机器人把开始确定的一组网页链接作为浏览的起始地址, 然后将网页获取过来, 抽取页面中出现的链接,并通过一定算法决定下一步要访问哪些链接; 同时, 机器人将已经访问的页面存储到自己的页面数据库里去。之后, 机器人则继续重复这个访问过程, 直至结束。在决定访问链接顺序的过程中, 最常见算法有: 深度优先、广度优先、有限深度?广度策略。当然, 一般搜索引擎的机器人在实现的过程中, 引入链长比(超链接数目与文档长度的比值) , 只取链长比小于某一门限值的页面, 即只采集内容页面, 而不采集目录页面。在采集文档的同时, 记录各文档的地址信息、修改时间、文档长度等状态信息, 用于站点资源的监视和资料库的更新。在采集过程中, 还可以构造适当的启发(heurist ic) 策略, 来指导机器人的路径选择和采集范围, 以减少文档采集的盲目性。
1. 2 索引模块
当机器人访问完网页并将其内容和地址存入网页数据库以后, 就要对其建立索引。索引模块总的来说是通过分析获取的网页, 排除HTML 等语言的标志符号, 将出现的所有字或者词抽取出来, 并记录每个字词的出现网址及相应位置, 最后将结果存入索引数据库, 就是一个很大的查询表, 上面记录某个特定字词在互联网上出现的一组位置信息。对于英文搜索引擎, 由于是以单词为语言的基本单位, 因此一般建立索引采用的都是词表法, 即首先建立一个词表, 然后将对应单词的出现位置记录下来。而检索的时候, 就是以这些词语作为检索入口, 并通过位置匹配可以实现多个词语的组合检索。但对于中文搜索引擎来说, 由于语言的基本单位是汉字, 在最底层往往采用的是字表法。和词表法相似, 先建立一个汉字字表(一般采用GB2312 汉字集) , 然后对于网页中出现的汉字均记录在相应的字表项内。当检索的时候, 采取字索引之间的位置匹配完成词语的检索。为了提高检索速度, 一般还会在字索引的基础上建立一些词索引, 有的是根据用户的提问动态生成已检索词的词索引, 有的则是建立一个常用词表, 然后生成这些词的索引。当然, 无论是英文系统还是中
1. 3 检索模块
作为检索模块, 首先分析用户检索时给出的提问式, 再访问搜索引擎已经建立的索引, 并通过一定的匹配算法, 获得相应的检索结果。一般还会对检索结果进行排序, 按照重要程度将结果有序地返回给用户。具体来说, 当用户进行检索的时候, 一般使用的是纯自然语言词汇或者是自然语言词汇组成的布尔逻辑式。对于前者, 可以直接利用检索算法查询索引数据库中的词索引, 或者是利用单字索引进行位置匹配, 以获得检索结果。而对于后者, 则首先要分析检索式的逻辑关系, 分别对检索式中的各个检索词进行检索, 最后再通过逻辑运算获得最终结果。由于网络上信息数量非常庞大, 可能会产生一个相当大的结果集, 那么如何精简结果以及如何将最重要的结果首先返回给用户就显得十分重要。最常用的方法是将结果按相关度进行排序, 把引擎认为最相关的结果放在最前面。相关度计算有很多的算法, 其中一个很重要的算法就是词频法, 即通过计算网页中检索词的出现频率来决定该网页的相关程度, 检索词出现次数越多则说明该网页越重要。虽然这种算法有很多缺陷, 往往不能达到最好的效果, 但由于计算网页中一个词的词频十分简单, 使得该算法很容易实现。当获得检索结果以后, 访问网页数据库, 获得相关网页, 并按照相应的格式和顺序生成结果网页, 最终提供给用户, 完成整个检索过程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值