
搜索引擎
yoki2009
这个作者很懒,什么都没留下…
展开
-
搜索引擎技术之整体架构设计
我们先看一下一个搜索引擎的大体设计图: 这里面我们看到了输入部分,索引部分,存储部分,还有搜索部分,简单的说拥有这些部件你的产品就可以叫做一个索引引擎了,MS使用的桌面搜索服务(Index service)也是这几部分组成的,那么我们接下来一步一步分析这几部分:1.原创 2009-06-10 12:50:00 · 1325 阅读 · 0 评论 -
搜索引擎设计起步
先谈一下作为一名Search Engine的初学者,我对搜索引擎的原理方面的认识,微软近期发布了他们的搜索引擎”bing”,中文翻译为”必应”,取有求必应的含义,佩服微软的亲中国文化策略,但也忽略了”bing”在中文里一般人读出”病”.但不管怎么说微软都看重的技术,我们不由得不相信它就是未来的主流原创 2009-06-05 20:48:00 · 534 阅读 · 0 评论 -
搜索引擎技术之文件目录遍历
搜索引擎技术之文件目录遍历 前面提到了反向索引的设计,简单的说就是对一个目标文件进行解析操作,那么我们要如何先获得这个文件呢?在搜索引擎中,网络蜘蛛程序将所到达的网页一并download到服务器上,成为一个大的文件目录(这里我特别说一下,我的这个说法是不正确的,Google是通过zlib压缩和寻址的方式定位文件,稍后的文章我用实际代码来演示,这里主要是针对简单无压缩的和桌面搜索引擎),里面有很多原创 2009-06-17 12:01:00 · 1108 阅读 · 0 评论 -
搜索引擎之分词设计
搜索引擎之分词设计 上面我们已经可以扫描目录,建立反向索引结构了,那么我们现在进入最关键的一步就是文件内容解析,使用过MS索引服务的人都只到,可以通过增加Filter来增加可索引的文件,比如增加PDF,HTML等,所以我们在设计文件解析的过程中也要留有类似的接口,我们先设计出一个基类,抽象出两个虚函数.//All right revsered by yoki2009//mailto:imj04原创 2009-06-19 12:53:00 · 894 阅读 · 0 评论 -
搜索引擎之存储设计(google方式)
搜索引擎之存储设计(google方式) 早期google计算下载24000000个网页共需要147GB,现在每天都有成千上万个网页被更新,因此google在使用蜘蛛程序下载到本地服务器时必然要采用压缩的方式存储,google使用zlib压缩方式存储下载的网页,zlib的压缩比率是3:1,可以使用Level 6去平衡压缩比率和速度,文档在连续空间被存储是按如下规定docID,长度,URL-内容原创 2009-06-25 12:02:00 · 1327 阅读 · 0 评论 -
搜索引擎之内存映射快速索引文件
搜索引擎之利用内存映射快速索引文件 用户在通过关键字检索信息时,如果反馈的内容在3S之内是适度范围,如果10s了一般用户就会感觉难以忍受了,所以如何提高对用户的反馈速度就成了搜索引擎技术中一个瓶颈. 每天都会有成千上万的网页产生并且背爬虫程序下载到服务器中存储起来,并建立了反向索引,可以想象这个索引表是一个多么大的数据文件,用户查询时,对这么大的一个文件做搜索,并且同时可能还有N原创 2009-07-01 12:01:00 · 1770 阅读 · 0 评论 -
搜索引擎之文件系统(一):磁盘连续存储
搜索引擎之文件系统(一):磁盘连续存储 我们在设计文件系统时要考虑系统的性能,海量存储,容错能力,大规模分布式数据处理,可扩展分布式管理等.性能之前也用了很多的方法来提升,比如反向索引数据,内存映射读文件等,这里就不多说了,文件系统另一个重要的功能是存储能力,之前我说过当网络蜘蛛将大量的数据下载到硬盘时,我们要用Zlib压缩存储它来实现更小的空间,但这远远不能符合容错能力,分布式管理等原创 2009-07-10 12:00:00 · 2150 阅读 · 0 评论 -
索引服务(Indexing Service)实现文档搜索(C++代码完整实现)
索引服务(Indexing Service)实现文档搜索(C++代码完整实现) Indexing Service是微软提供的为简单实现全文搜索引擎的一个服务,其开发的简便性简直是令人叹为观止,我也看到了很多人将它作为网站的站内搜索引擎来做,使用ASP或VBScript就能实现. Indexing Service使用的ADO的接口,可以表明该技术也是使用MS的数据库实现的,具体架构原创 2009-06-15 12:01:00 · 2850 阅读 · 1 评论 -
搜索引擎技术之反向索引设计(inverted index):
先解释一下什么叫反向索引:根据关键词反向得到该关键词的其它所有信息,比如该关键词所在的文件,在文件里出现的次数和行数等,这些信息就是用户查找该关键词时所要用的信息.^_^够通俗易懂吧,给点掌声先…………. 我设计这部分时采用关键字映射表的方式实现反相索引,建立一个以关键字为内容的索引表,该索引表只有一个字段叫indexword用来存储关键字,一般常用的原创 2009-06-12 12:02:00 · 2510 阅读 · 3 评论