2010-06-03 56 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雖然也有它的地方。這實際上取決於您的要求和體系結構。