背景:我在 Marklogic 生产数据库中加载了大约 500k 文档。我们有一个使用 CPF 的处理管道,用于文档摄取。我存储文档的 MIME 类型。
我需要有基于文件类型的方面。我无法使用 MIME 类型进行分面,因为普通用户不理解 MIME 类型,并且他们更熟悉扩展名(Excel、Word、Jpeg 等...)。我的问题是多个 MIME 类型可以映射到一次单一文件类型,例如:- Excel 有 10 个或更多 MIME 类型,我想将它们全部映射到 Excel。
以下是我提出的关于如何实现的两种可能性。我想知道是否还有其他好的方法可以实现这一目标..
- 我有一个“转换”方法,它基本上采用基于 MIME 类型生成的分面,并将与文件类型相对应的所有各种 MIME 类型分组。我有一个配置文件(XML),其中包含 MIME 类型到文件类型的所有映射。这样,当新的 MIME 类型添加到文件类型时,我所能做的就是编辑此配置文件。
此方法的缺点是,在执行搜索查询时,我需要扩展搜索字符串通过自定义约束,文件类型会转换为每个单独的 MIME 类型。 - 第二个选项是在摄取过程中,我添加文件类型,这将解决我的分面和搜索问题。
此选项的缺点是我需要将 FileType 添加到所有现有的 500k 文档中,在此之前我需要禁用 CPF 或添加某种逻辑,当 CPF 在这些 500k 文档上触发时,我告诉不要采取任何行动。由于它是生产数据库,我无权禁用 CPF 来获取新文档。
我喜欢第二个选项,但是有没有比更改我的 CPF 代码或禁用触发器数据库一段时间更好的方法?
哪一个(1 或 2)是更好的方法?我想知道是否有比这些更好的选择..
最佳答案
您准确地列出了两个选项。在查询时执行,或在索引时执行。并且您准确地列出了优点和缺点。我的建议:如果它足够快,可以让您在查询时执行此操作,并且如果可以接受更高级代码的维护,那么就这样做。否则将知识写入文档中。
关于marklogic - Marklogic 中的文件类型方面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38423467/