【问题标题】:Managing BLOBS in Oracle 11g在 Oracle 11g 中管理 BLOBS
【发布时间】:2011-09-11 17:58:01
【问题描述】:

我的应用程序使用 Oracle 11g 作为后端。我们在不同的表中有多个 BLOB 列。我们正在使用这些列来存储文件,例如 .Doc、.excel 等。第一个问题是存储为 BLOB 是否支持全文搜索?

我的第二个问题是是否保留一个表来存储所有 BLOB 数据并创建一个可用于搜索文档的单个文本索引?会比把它放在不同的表列和单独的全文搜索索引中更好吗?如果我将所有文件保存在一个表中,我应该从全文搜索中排除该组行吗?

【问题讨论】:

    标签: oracle full-text-search


    【解决方案1】:

    是的,您可以将文档存储在 BLOB 列中,然后使用 Oracle Text 对它们进行索引(请参阅manual)。

    我不确定是否支持多个 BLOB 列(多个文本列也可以,我自己用过)。

    在不同的表上建立一个单一的文本索引可能会更困难。这可能是您实际上需要将所有文档合并到一个表中的第二个问题的答案。

    使用 Oracle Text 时,似乎文本索引只是表上的一个附加索引。但是,文本索引由 Oracle 自动创建的几个附加表组成。你无法改变它。

    【讨论】:

    • 我的第一个问题已经得到澄清,我也在 oracle 文档中阅读过。谢谢。但是对于第二个问题,我已经看到了一些关于“MULTI_COLUMN_DATASTORE”的信息。在一个讨论中,我们可以在不同的表中组合多个文本列并创建一个文本索引。你有什么想法吗?
    • 我已经成功地将 MULTI_COLUMN_DATASTORE 用于仅包含文本的列。然而,我认为它不适用于特殊格式,因为 Oracle(根据文档)只是连接列。这会破坏 Word 或 Excel 等格式的完整性。但是测试肯定会显示出来。最简单的路线最有可能将所有 BLOB 数据合并到单个表的单个列中,然后使用 Oracle Text 对其进行索引。
    • 在为 BLOB 列创建单个索引的情况下,如何使其对存储在表中的文件和存储在文件系统中的文件(在共享位置上)的索引有用。我会将表中的文件名和路径存储在不同的列中。
    猜你喜欢
    • 1970-01-01
    • 2021-03-11
    • 2012-02-01
    • 1970-01-01
    • 2016-10-25
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 1970-01-01
    相关资源
    最近更新 更多