2010-06-03 91 views
3

我打算在我的Web应用程序中添加搜索功能。我为应用程序使用Struts 2框架,并且将在关系数据库中搜索将要搜索的项目。为了实现全文搜索引擎我有以下疑惑:基于Lucene的数据库搜索引擎

  1. 对于基于数据库的搜索引擎,我应该只使用Lucene的或基于Luncene像Solr的,luSql,指南针等
  2. 在某些情况下,其他公用事业的Solr,它可以嵌入到网络应用中,而不是将其部署为海洋战争WAR。
  3. 是Solr中用来搜索的关系数据库或者是文件系统
+0

你真的应该告诉我们你正在为你的web应用使用哪些技术。 – 2010-06-03 07:19:52

+0

我正在使用Struts 2框架 – Abhay 2010-06-03 07:21:01

回答

2
  1. 取决于您想要操作的级别。由于您已经在Java应用程序中,因此使用Lucene API非常简单,为您的数据编制索引,然后再次使用它进行搜索。任何你可以用Solr做的事情你都可以用Lucene做,但可能有更多的逻辑和胶水代码。

  2. 是的,看看http://wiki.apache.org/solr/Solrj#EmbeddedSolrServer

+0

但solr用于搜索关系数据库还是仅用于文件系统? – Abhay 2010-06-03 08:25:39

+0

它可以做到更多http://lucene.apache.org/solr/features.html#Detailed+Features – cherouvim 2010-06-03 11:21:12

2

看看休眠搜索。我很确定它符合我们的需求,因为存储在数据库中的数据将被索引,因此可用于搜索。据我记忆,Solr将索引存储在文件系统上(尽管可能有一个插件将索引存储在数据库中)。

我也看看www.elasticsearch.com。它来自指南针的创造者。我认为对指南针提供的支持有限。

+0

如果他已经在使用hibernate进行持久化,Hibernate搜索将只能正常工作,对吗? – cherouvim 2010-06-03 07:29:42

0

你是说你的数据在数据库中,但你不提是否要使用一个ORM解决方案。如果你这样做,我还建议你看看Hibernate Search。 Hibernate是一个需求,但您可以针对经典会话或使用JPA。 Web应用程序的最大优势可能在于您始终使用托管实体,无需编写用于将Lucene文档转换为Lucene文档的锅炉代码。 Solr虽然也有它的地方。这实际上取决于您的要求和体系结构。