垂直门户用哪种搜索引擎比较合适?
最近遇到了头疼的事情,就是开发垂直门户的分布式搜索引擎系统时,发现有四种不同应用的分布式搜索引擎:
1. 分布式元搜索:
拥有多个单个的搜索引擎, 中心搜索引擎是利用这些分布的单个的搜索引擎的结果进行撮合得到完整的结果.
这样的设计方案要求各个单元的搜索引擎拥有相同的排序算法和基本相同的数据输出结构,以便由中心搜索进行整理。
2.散列分布搜索引擎
根据Query对索引服务器和文档服务器进行散列,做到对于任何的索引词能够准确的定位到具体的索引服务器并从而定位到正确的文档服务器。
3.Peer 2 peer 搜索引擎
利用集中方式的索引,配合分布于世界各地的单个的计算机形成的文件源,构成了世界上最庞大的p2p搜索引擎之一。
这种设计里的中心索引服务器只记录一些相对关键的信息,例如位置(IP,序列号),歌曲的名字,作者等,其它的信息一概可以从任何在线并且拥有本条全面信息的计算机上获取。同时p2p也可以根据搜索建立一些中间路由的缓存,即将一些搜索结果存在单个或者相近的节点上,加快搜索速度。
4. 局部遍历型搜索引擎
这类的搜索引擎又可以采用多种设计方案,其中比较可行的是对信息进行聚类后建立信息树,搜索时只需要从树的一个分支下去遍历便可以了。局部遍历应当有一定的规则,并且在设计初期就需要对每一个加入的索引进行相对准确的位置安排,使得放置在合适的节点上,以保证搜索的效率。
根据我们的应用需求,觉得第三种显然不适合我们。第二种可能后台的处理工作量巨大。现在的问题是:
在第一种分布式元搜索和局部遍历型搜索引擎之间的应如何取舍?
两种引擎在应用中的优缺点是什么?
有没有可能将两种引擎结合起来开发?
对于资源及设备需求来说,哪种的资源要求比较高?
看看是否有前辈高人帮助指点一下?或者进行一些探讨?
我觉得应该用 局部遍历型搜索引擎 + 分布式元搜索
就是说先使用 局部遍历型搜索 建立起搜索引擎
然后再 部署多个这个的搜索系统 为其建立一个统一界面 形成 分布式元搜索
因为首先 不可能直接有 分布式元搜索 因为无法估计你的每一个垂直搜索类别的数据量
当然 如果人为限制 那么也行 不过 适用范围将大大缩小 也无法保证你的每一个元 有足够的性能
局部遍历型搜索 是一个可以大容量 高负荷运行的结构
散列分布搜索引擎 和 Peer 2 peer 搜索引擎 我觉得对于大型系统 是有缺陷的
可以自定义排序规则,如相关度、最后的时间、单词出现的次数等。
提供垂直搜索、元搜索全套解决方案,为您再造一个酷讯、一个搜评、一个bbmao,甚至是一个奇虎。
现有的搜索案例:
1、网页搜索:http://www.yqs.cc:9090/search/search.jsp
同时从百度、雅虎、google、MSN、搜狗、中搜等网站提取搜索结果,并根据自定制的规则排序。
2、MP3搜索:http://www.yqs.cc:9090/search/mp3.jsp
同时从百度Mp3、雅虎Mp3搜索音乐
3、BT搜索:http://www.yqs.cc:9090/search/bt.jsp
同时从多个BT网站提供最新的BT下载内容
4、迅雷下载搜索:http://www.yqs.cc:9090/search/xunlei.jsp
同时从多个提供迅雷下载链接的网站搜索最新的下载内容
5、电驴下载搜索:http://www.yqs.cc:9090/search/emule.jsp
从verycd.com等电驴下载内容提供网站搜索最新的下载
系统内建多级索引机制,以保证最快的搜索响应时间,支持分布式部署,能支持平均日搜索请求量超过200万次。
提供全套Linux上C++/java程序源代码及解决方案,提供搜索的定制开发。
另有移动、联通、电信的SP端程序,OA解决方案提供。
如果您有以下搜索需求:
音乐、网页、求职、商机、数据库、车票、论坛、住房、交友、旅游,及其他各类行业搜索,请按以下方式联系我:
QQ:46244150
Email:daijuhua@163.com
MSN:daijuhua@hotmail.com