2011-09-22 74 views
-1

我需要存儲一大套什麼,在我的腦海(儘管我習慣SQL)關係數據。基本上考慮存儲ClueWeb(4TB)的大部分子集。有文件,句子和提取 - 以及每個的屬性。一個主要的用例是對提取進行全文搜索。正確的存儲大型關係數據集

使用Lucene輕鬆有效地實現對提取運行全文搜索。但是,語義提取是句子的一部分,這些文件是文檔的一部分。句子和文檔也有自己的屬性,但是當我將提取存儲在Lucene中時,句子和文檔需要是提取的屬性。

是否有一個好的數據庫引擎,允許全文搜索而不是提取,還有一個關係結構,這樣我可以輕鬆存儲句子和文檔的屬性?或者有沒有辦法將這些數據存儲在我不明白的Lucene中?

+1

的確,你做出了一個決定:Lucene並沒有很好地模擬關係,大多數關係數據庫不能很好地進行全文搜索。如果你描述了你需要執行的查詢的性質,或者你需要支持的最終用戶功能,那麼這將有助於更好地做出決定。 –

+0

一個主要用例是通過提取進行搜索(Lucene)。二級用例正在瀏覽層次結構(文檔< - 句子< - 提取)並查看每個對象的屬性(SQL)。一個大問題也是規模。我認爲擴展了很多關係數據庫提高4TB將是困難的。一種解決方案是將lucene和關係數據庫都用於數據表示 - 但我仍然不知道可以擴展的關係數據庫。 – schmmd

+0

你有沒有考慮在Lucene中有一個「外鍵」字段?這將讓你做這個層次結構瀏覽。 – Xodarap

回答

0

您可以很容易地將索引關係索引爲Lucene中的字段值。你不能做的是用連接執行查詢。但是,如果您只想向上/向下鑽取或獲取句子或文檔中所有提取的列表,則可以通過索引正確的鍵來輕鬆完成。你遇到麻煩的地方就是這樣的查詢:「所有帶有標題的文件都有'foobar'這個單詞,其中一個句子有'bletch'這個單詞,即使你反規範化 - 即拷貝 - 但是對於4TB的索引,你可能不想這麼做