2011-09-11 44 views
0

我的應用程序使用Oracle 11g作爲後端。我們在不同的表中有多個BLOB列。我們正在使用這些列來存儲文件,如.Doc, .excel等。第一個問題是,存儲爲BLOB是否支持全文搜索?在Oracle 11g中管理BLOBS

我的第二個問題是,是否保留單個表來存儲所有BLOB數據並創建一個可用於搜索文檔的單個文本索引?將它保存在不同的表格列中並分隔全文搜索索引會更好嗎?如果我將所有文件保存在一個表中,我應該從全文搜索中刪除一組行嗎?

回答

0

是的,您可以將文檔存儲在BLOB列中,然後使用Oracle Text將其編入索引(請參閱manual)。

而且我不確定是否支持多個BLOB列(多個文本列很好,但我自己使用它)。

在不同的表格上設置單個文本索引可能會更困難。這可能是第二個問題的答案,即您實際上需要將所有文檔合併到一個表中。

使用Oracle Text時,好像文本索引只是表格上的附加索引。但是,文本索引由Oracle自動創建的幾個附加表組成。你不能改變這一點。

+0

我的第一個問題得到澄清,我已經閱讀,在Oracle文檔也。謝謝。但對於第二個問題,我已經看到了一些關於'MULTI_COLUMN_DATASTORE'的信息。在其中一個討論中聲明,我們可以在不同的表格中組合多個文本列,並創建單個文本索引。你有什麼主意嗎? – saravana

+0

我已成功將MULTI_COLUMN_DATASTORE用於僅包含文本的列。但是我認爲它不適用於特殊格式,因爲Oracle(根據文檔)只是連接列。這將破壞Word或Excel等格式的完整性。但是一個測試肯定會顯示出來。最簡單的路徑最可能將所有BLOB數據合併到單個表的單個列中,然後使用Oracle Text對其進行索引。 – Codo

+0

在爲BLOB列創建單個索引的情況下,如何使索引存儲在表中的文件和存儲在FileSystem中的文件(在共享位置上)有用。我將把表格中的文件名和路徑存儲在不同的列中。 – saravana