`
liuyupy
  • 浏览: 6977 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

全文检索 方案比较

    博客分类:
  • JAVA
阅读更多

应用场景:
    一台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 , 最好只使用一台应用服务器.

 

分享到:
评论
19 楼 daragon 2011-05-23  
方案四倒是可行。目前krugle是基于方案四实现的代码搜索。
18 楼 openFox 2011-05-23  
对lucence了解一点点,学习了
17 楼 活的相句废话 2011-05-23  
直接用nutch好了
基于lucen,整合hadoop
调研不足啊
16 楼 dingchao.lonton 2011-05-23  
solr很好,很强大,我已经成功应用了一个按钮,效果很ok
15 楼 andyao 2011-05-23  
riching 写道
katta

说点题外话,katta很久没有更新,而且katta的架构我不觉得好,
如果真需要分布式的场景,我更愿意选择 elasticsearch http://www.elasticsearch.org/
14 楼 yangfuchao418 2011-05-23  
太多了。  
13 楼 shingo7 2011-05-23  
<div class="quote_title">liuyupy 写道</div>
<div class="quote_div">
<p><span style="color: #0000ff;"></span>是企业内部论坛,其索引的更新与查询频率较低(无非主题帖和回帖),且数据量不大(后期也很难超过1G) <span style="color: #0000ff;"></span><span style="color: #3366ff;"><br></span></p>
</div>
<p> </p>
<p>这个需要做分布式索引么,我觉得直接Lucene单点解决。</p>
12 楼 liuyupy 2011-05-23  
kimmking 写道
andyao 写道
建议你深入了解一下solr,提供很多特性,比如:
Cache
Replication
Auto Suggest
Faceted Query
等等
而且有商业公司Lucidworks支持,有非常多的成功案例

在企业搜索领域,目前没有看到比solr更好的开源解决方案。

我们表示 solr很棒~


我表示,已经在下载solr了
11 楼 liuyupy 2011-05-23  
魔力猫咪 写道
如果可以的话,直接DB全文检索索引不成吗?应该足够应付需要了吧?

DB全文检索,弊端较多.
倒是DB2 提供了NSE 全文检索功能,目前正在研究.
10 楼 liuyupy 2011-05-23  
gougou851129 写道
直接用nutch好了
基于lucen,整合hadoop
调研不足啊

接触过nutch,当时主要用它的爬虫及与lucene集成的功能....既然要整合hadoop,就不需要nutch了,hadoop已经脱离nutch.
9 楼 liuyupy 2011-05-23  
andyao 写道
推荐使用方案1 solr,稳定,功能完备,有社区支持。
关键是不用太多开发,开箱即用。
这个我们在公司产品系统上使用过,索引多超过1亿的网页,性能还可以。

再说方案3,为什么要用NFS?直接使用RMI,为什么不考虑其它的远程服务方式?
就算方案是好的,那么你需要熟悉Lucene,RMI,NFS,而且需要开发,测试,工期基本是月级别的,风险太高。



谢谢,其实根据后期资料查询,个人也比较倾向solr,工期最短..
8 楼 gougou851129 2011-05-23  
直接用nutch好了
基于lucen,整合hadoop
调研不足啊
7 楼 yizhilong28 2011-05-23  
Sphinx+mysql还是很强大的
solr用过,但是索引文件还是挺大。
6 楼 riching 2011-05-23  
katta
5 楼 kjj 2011-05-21  
魔力猫咪 写道
如果可以的话,直接DB全文检索索引不成吗?应该足够应付需要了吧?

db全文检索不够灵活啊,比如敏感词啊,排名啊
4 楼 魔力猫咪 2011-05-21  
如果可以的话,直接DB全文检索索引不成吗?应该足够应付需要了吧?
3 楼 kimmking 2011-05-20  
andyao 写道
建议你深入了解一下solr,提供很多特性,比如:
Cache
Replication
Auto Suggest
Faceted Query
等等
而且有商业公司Lucidworks支持,有非常多的成功案例

在企业搜索领域,目前没有看到比solr更好的开源解决方案。

我们表示 solr很棒~
2 楼 andyao 2011-05-20  
建议你深入了解一下solr,提供很多特性,比如:
Cache
Replication
Auto Suggest
Faceted Query
等等
而且有商业公司Lucidworks支持,有非常多的成功案例

在企业搜索领域,目前没有看到比solr更好的开源解决方案。
1 楼 andyao 2011-05-20  
推荐使用方案1 solr,稳定,功能完备,有社区支持。
关键是不用太多开发,开箱即用。
这个我们在公司产品系统上使用过,索引多超过1亿的网页,性能还可以。

再说方案3,为什么要用NFS?直接使用RMI,为什么不考虑其它的远程服务方式?
就算方案是好的,那么你需要熟悉Lucene,RMI,NFS,而且需要开发,测试,工期基本是月级别的,风险太高。

相关推荐

    SQL Server全文检索对文本内容进行检索的三个方案

    ### SQL Server全文检索对文本内容进行检索的三个方案详解 #### 方案一:结合Windows索引服务进行全文检索 在Windows环境下,SQL Server利用Windows索引服务(Indexing Service)来实现对文件内容的全文检索功能,...

    国家计委纵向网全文检索系统应用方案

    《国家计委纵向网全文检索系统应用方案》深入解析 国家计划系统纵向网是一套连接国家计委与全国各省(自治区、直辖市)计委的内部网络系统,旨在促进信息高效交流与共享。一期工程涵盖了48个节点,包括1个中心节点...

    全文检索系统整体方案.doc

    "全文检索系统整体方案" 本文档介绍了一个全文检索系统的整体方案,该方案旨在提供一个高效、准确、实时的信息检索系统,满足企业内部信息管理的需求。 1.1 全文检索需求 该系统需要满足以下几个方面的需求: * ...

    微软sql server 2005全文检索的BUG解决方案

    在SQL Server 2005中,全文检索是数据库系统中的一个重要特性,它允许用户执行复杂的文本搜索,提高数据检索的效率。然而,正如标题所提及的,SQL Server 2005的全文检索功能存在一些已知的问题,尤其是与SQL Server...

    MySQL实现中文全文检索的解决方案.pdf

    这些解决方案可以帮助开发者实现中文全文检索,提高搜索效率和准确性。但是,这些解决方案也存在一些缺点,例如,转换时间过长、检索词的长度有限等。因此,我们需要根据实际情况选择合适的解决方案。

    全文检索系统整体方案设计资料讲解.docx

    全文检索系统需满足多种检索方式,包括模糊检索、分类搜索、高级复合搜索、全文检索、图片内容检索和跨库检索。系统支持字索引和词索引,同时具备关键词布尔逻辑运算功能,如AND、OR、NOT,以及复合式布尔逻辑运算,...

    excel全文检索工具

    总的来说,这个“excel全文检索工具”利用了Apache Lucene的强大功能,为处理Excel数据提供了方便的搜索解决方案,尤其适用于需要高效搜索大量Excel数据的场景。虽然可能是一个相对简单的实现,但仍然能够满足一定的...

    区块链上支持多关键字检索的可搜索加密方案.pdf

    区块链上支持多关键字检索的可搜索加密方案 本文档主要介绍了一种基于区块链技术的多关键字可搜索加密方案,该方案旨在解决云存储中单关键字检索的限制和云服务器不诚实搜索的问题。下面是该方案的详细介绍: 首先...

    oracle全文检索的实现

    4. **发出查询**:通过SQL语句执行全文检索,利用Oracle Text提供的搜索语法,如CONTAINS函数。 5. **索引维护**:定期进行索引的同步与优化,以确保索引的时效性和检索性能。 #### 结论 Oracle Text的全文检索...

    亿级海量数据搜索,检索方案 HubbleDotNet

    亿级海量数据搜索,检索方案 [IndexOnly] [Directory ('d:\test11\VEnglishNews\')] [DBTableName ('VEnglishNews')] [DBAdapter ('SQLSERVER2005')] [DBConnect ('Data Source=(local);Initial Catalog=Test;...

    全文检索jar包含ik分词jar

    "全文检索jar包含ik分词jar"这一描述揭示了一个基于Java的全文检索解决方案,其中包含了Lucene搜索引擎库和IK Analyzer中文分词器。这样的组合使得开发者能够轻松地处理中文文本,构建出高效、精准的全文检索系统。...

    全文检索系统整体方案.pdf

    全文检索系统整体方案.pdf

Global site tag (gtag.js) - Google Analytics