首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

全文检索 草案比较

2012-10-25 
全文检索 方案比较应用场景: ??? 一台WEB服务器(apache) + 两台应用服务器集群(AIX系统) + DB ??? 系统中

全文检索 方案比较

应用场景:
??? 一台WEB服务器(apache) + 两台应用服务器集群(AIX系统) + DB
??? 系统中论坛模块需要提供全文检索功能,由于是企业内部论坛,其索引的更新与查询频率较低(无非主题帖和回帖),且数据量不大(后期也很难超过1G)

关注点:
??? 分布式索引: Lucene 未内置对分布式索引的支持
??? 模块移植性: 能方便的将全文检索功能模块移植到其它系统中.

目前想到的和google到的解决方案如下:

1. Solr
?? 优点: 基于Lucene,支持集群,易上手,其它忽略?
?? 缺点: 从Apache Solr项目描述上可符合功能要求,但未使用过Solr,缺乏其可行性评估 ; 似乎无法处理单结点故障(不确定)

2. Lucene + RMI
??? 在DB服务器(或其它服务器)部署RMI服务端,并将索引建立于该服务器上.索引的更新和查询都走RMI
??? 优点: 易于实现

3.? Lucene+NFS
???? 类似于Lucene+RMI部署架构,由于索引数据量不大,检索时可采用RAMDirectory.
???? 优点: 易于实现
???? 缺点: 未使用过此类架构,对其网络延迟等问题缺乏评估

4.? Lucene+Hadoop
???? 利用Hadoop建立分布式文件系统.本人对Hadoop不熟悉,对此方案的可行性无法评估.
???? 若有牛人成功实施过此方案,还望提供相关经验和资料.? 如果此方案可行,本人非常希望借此机会学习Hadoop.

5.? Sphinx
???? 功能很强大,遗憾的是Sphinx并不提供Java 编程API,需要绕道.

6.? nutla
???? 从其项目介绍来看,似乎能满足要求,但最新版本为1.0a9,风险很大

从实现难易程度来看,倾向于方案3 ; 从可靠性和扩展性来看,倾向于方案2(对方案4不够了解) .
希望路过的大牛能对以上方案给个评估,以免本人多走弯路. 若有更好的解决方案,望不吝赐教.

附参考资料:
Lucene????? : http://lucene.apache.org/
Solr?????????? : http://lucene.apache.org/solr/
Hadoop???? : http://hadoop.apache.org/common/docs/r0.19.2/cn/hdfs_design.html
NFS???????????: http://jqs.itpub.net/post/140/479176
??????????????????? http://autumnice.blog.163.com/blog/static/5552002007102924734853/
?
Sphinx?????? : http://hi.baidu.com/topcompanyjobs/blog/item/dcd606dcb2bfa5df8d102990.html
MG4J?????????:?a free full-text search engine for large document collections written in Java?
???????????????????http://mg4j.dsi.unimi.it/#install
JAVAEYE??? : http://edwardpro.iteye.com/blog/183686? lucene的前端集群思路
?????????????????? http://www.kuqin.com/searchengine/20080324/5055.html? 为什么说Lucene不好? (原javaeye链接已经失效)?
Javabloger?: http://www.javabloger.com/article/distributed-lucene-cluster.html?? lucene的分布式搜索-入门篇
nutla???????? : http://code.google.com/p/nutla/
?????????????????? http://www.blogjava.net/nianzai/archive/2010/10/27/336255.html
?

其它:
1. 从数据库端入手,系统数据库采用IBM DB2,从网上搜索到 IBM OmniFind 似乎具备检索查询功能,请使用过该工具的大大们给个说法,谢谢.
2. God Bless Me , 最好只使用一台应用服务器.

?

   15 楼 andyao 2011-05-23   riching 写道katta
说点题外话,katta很久没有更新,而且katta的架构我不觉得好,
如果真需要分布式的场景,我更愿意选择 elasticsearch http://www.elasticsearch.org/ 16 楼 dingchao.lonton 2011-05-23   solr很好,很强大,我已经成功应用了一个按钮,效果很ok 17 楼 活的相句废话 2011-05-23   直接用nutch好了
基于lucen,整合hadoop
调研不足啊 18 楼 openFox 2011-05-23   对lucence了解一点点,学习了 19 楼 daragon 2011-05-23   方案四倒是可行。目前krugle是基于方案四实现的代码搜索。

热点排行