November 18, 2005

集中/分布式搜索引擎的4种设计方案::[Search Engine]


Liang

对于搜索引擎, 在索引量和搜索量大到一定程度的时候, 索引更新的效率会逐渐降低, 服务器的压力逐渐升高, 因此基本上整个搜索引擎的利用率可以说是越来越低了, 并且随着海量数据存储带来的困难, 设计一个良好的分布式搜索引擎将是一个搜索引擎能否面相未来发展的关键因素了.

那么分布式搜索引擎的最主要的核心问题是哪些呢?

1. 分布的信息获取和计算以及对此进行的数据统一
这里面包括爬虫/或者相应的数据获取机制的分布, 对信息进行加工的统一管理

2. 数据处理后的分布存储和管理
主要是文件的准确定位和更新,增加,删除,移动的机制

3. 前端搜索服务的分布
主要处理大规模并发请求时的分发机制

基于以上3个基本需求, 基本上可以构造如下4类的分布式搜索引擎:
1. 分布式元搜索引擎
2. 散列分布搜索引擎
3. P2P 分布搜索引擎
4. 局部遍历型搜索引擎

下面逐步介绍以上4类可扩展的搜索引擎:
1. 分布式元搜索:
拥有多个单个的搜索引擎, 中心搜索引擎是利用这些分布的单个的搜索引擎的结果进行撮合得到完整的结果.
这样的设计方案要求各个单元的搜索引擎拥有相同的排序算法和基本相同的数据输出结构,以便由中心搜索进行整理。
对于这类的搜索引擎,关键的设计是要求每一个单元所拥有的索引不构成重复,但是进行数据的采集(爬虫)时可以采取独立的系统获取后再按照规则分布到各个单元上。
优点,设计简单,快速,并且任何一个单元可以随时的摘掉但并不影响太大。
缺点,对于大规模的并发并非好的解决办法

2.散列分布搜索引擎
根据Query对索引服务器和文档服务器进行散列,做到对于任何的索引词能够准确的定位到具体的索引服务器并从而定位到正确的文档服务器。

优点,抗压,设计简单
缺点,对于单个索引服务器或者文档服务器的容量等动态的调整较困难

3.Peer 2 peer 搜索引擎
著名的Napster就是这样的一种设计,利用集中方式的索引,配合分布于世界各地的单个的计算机形成的文件源,构成了世界上最庞大的p2p搜索引擎之一。
这种设计里的中心索引服务器只记录一些相对关键的信息,例如位置(IP,序列号),歌曲的名字,作者等,其它的信息一概可以从任何在线并且拥有本条全面信息的计算机上获取。同时p2p也可以根据搜索建立一些中间路由的缓存,即将一些搜索结果存在单个或者相近的节点上,加快搜索速度。

优点,可以超级大,基本上不需要有维护成本
缺点,中心服务器的更新效率很低,信息源不稳定

4. 局部遍历型搜索引擎
这类的搜索引擎又可以采用多种设计方案,其中比较可行的是对信息进行聚类后建立信息树,搜索时只需要从树的一个分支下去遍历便可以了。局部遍历应当有一定的规则,并且在设计初期就需要对每一个加入的索引进行相对准确的位置安排,使得放置在合适的节点上,以保证搜索的效率。

优点,容易解决抗压,搜索精度高,搜索效率高
缺点,设计复杂,调整索引所在节点的位置不易

总体来说,搜索引擎的设计方法可以很多,这里只是抛砖引玉,相信未来会有更多的巧妙的设计方案出现。

Posted at November 18, 2005 07:20 AM by Liang at 07:20 AM | Comments (10) | TrackBack(3) | Booso!| Niu.la收藏!


Trackback

You can ping this entry by using http://www.wespoke.com/cgi-bin/mt/mt-tb.cgi/823

集中/分布式搜索引擎的4种设计方案

Trackbacked from http://spaces.msn.com/members/peterzheng80/blog/cns!1pXkuaxxfMhX289nXDjGUfuQ!216.entry with 集中/分布式搜索引擎的4种设计方案 on peterzheng80.

集中/分布式搜索引擎的4种设计方案

Trackbacked from http://spaces.msn.com/members/peterzheng80/blog/cns!1pXkuaxxfMhX289nXDjGUfuQ!216.entry with 集中/分布式搜索引擎的4种设计方案 on peterzheng80.

Trackbacked from http://wsop-chips-en.bargarmetal.com with Good work. I like your site. on .

Comments

第 1 楼:

查了多少资料才总结出来?
我只知道一些天网, 他们的负载小, 倒是正好应用了你认为不适用于大并发的第1种方案.
所以我觉得每种方案的评论很中肯哦

Posted by: bluemiles at November 19, 2005 02:23 AM from 220.249.19.52

第 2 楼:

确实,单个说,每一个都不完美,我觉得如能将第1,2种结合就最妙了。google说1的较多,yahoo说2较多。单看每一篇论文都是云山雾罩(尤其是google)。 搜索1+2,味道好极了。

Posted by: 张博文 at November 19, 2005 09:47 AM from 221.222.167.114

第 3 楼:

想法比较有意思。
但个人认为,如果目的是提供非结构化的webpage的检索,google现在的模式已经足够了。集中意味着管理成本的低廉,分布会带来极大的运营困难。

Posted by: glass at November 26, 2005 03:08 AM from 221.221.17.136

第 4 楼:

能否解释一下google为什么会有这个提示?
In order to show you the most relevant results, we have omitted some entries very similar
to those already displayed. If you like, you can repeat the search with the omitted results
included.
多谢!!

Posted by: li at November 30, 2005 10:35 AM from 141.43.210.10

第 5 楼:

非常感谢大家的见解!
我想知道如果我把网页都down 到本地之后,如何索引关键字的,因为我想不会是用oracle 存储这些关键字对应的URL吧!谢谢!

Posted by: toby at December 7, 2005 10:20 PM from 210.82.50.220

第 6 楼:

我对分布式运算很感兴趣,能否就每一种实现的方式更详细地说明一下?

Posted by: whyandwhat at January 21, 2006 12:38 AM from 219.82.211.251

第 7 楼:

很精彩

都是你自己的看法吧?

Posted by: 方桑 at February 23, 2006 07:00 PM from 222.66.79.187

第 8 楼:

很精彩

都是你自己的看法吧?

Posted by: 方桑 at February 23, 2006 07:00 PM from 222.66.79.187

第 9 楼:

我正在设计实现P2P搜索引擎部分。。。基于页面搜索的。。。

原理是:
采用用户机器当做数据存储,数据分析。
将用户查看过的页面收集整理存储在本地。
使用P2P的方式查询。
查询优先本地查询。
DHT网络寻找。
本地数据存储采用SQLITE

Posted by: redor at April 13, 2006 06:54 PM from 61.135.170.29

第 10 楼:

楼主 怎么联系你, 我的Q是11943076 你加下
有关搜索引擎的问题想请教下..

Posted by: 程生 at June 8, 2007 11:41 AM from 219.134.168.81

Post a comment

请注意,为了防止spam,您的留言必需含有中文字符!









Remember personal info?




所有发表