在将文件存储库加载到 MarkLogic 时,我意识到它包含大量重复的文档。例如,同一产品目录文档("catalog.pdf"(的多个副本可以在几个不同的目录中找到,例如:/products/published-documents/
、/sourcing/references/
、/marketing/materials/
。
我想知道我是否可以通过在 MarkLogic 中让多个 URI 指向同一文档(如符号链接?或者也许还有其他方法可以达到相同的效果。我已经考虑过使用集合,但我们确实需要保留目录结构,以便用户可以继续通过 WebDAV 访问文件。
不,在 MarkLogic 中,文档只有一个 URI 是一个相当低级别的约束。但是,您可以使用模块化文档功能(如 XInclude 或 XPointer(,并将重复的文档替换为对规范 URI 的引用。
https://docs.marklogic.com/guide/app-dev/mod-docs
在这种情况下,集合也可能很有用,例如,将规范文档分配给一个集合,将重复文档分配给另一个集合。那么仅查询规范文档会更简单。
但是,如果 WebDAV 是主接口,则两者都不合适,因为 WebDAV 客户端只需打开带有 XInclude URI 引用的浅层文档。
一个可能的例外是通过权限。还可以为规范文档和重复文档分配不同的权限,以便 WebDAV 用户无法访问重复文档。然后,对于浏览WebDAV的任何人,都不会列出重复项。该行为不能完美地模仿符号链接,但它可能足够接近。