MarkLogic中的同一文档有多个URI?

时间:2018-09-30 14:13:17

标签: marklogic

在将文件存储库加载到MarkLogic时,我意识到它包含大量重复的文档。例如,可以在几个不同的目录中找到相同产品目录文档(“ catalog.pdf”)的多个副本,例如:inputs = [0 1 0 0]' weights = [0 0 0 0]' desiredresult = 1 disp('Neural Net Result') res_net = evaluateNeuralNetwork(inputs, weights) disp('Error') evaluateNeuralNetError(1, res_net); learn(inputs, weights) train(6, inputs, weights) function result = evaluateNeuralNetwork(inputVector, weightVector) result = 0; for i = 1:numel(inputVector) result = result + (inputVector(i) * weightVector(i)); end end function res = evaluateNeuralNetError(desired, actual) res = desired - actual end function weights = learn(inputs, weights) learningRate = 0.20 weights(3) = weights(3) + learningRate end function neuralNetResult = train(trials, inputs, weights) for i = 1:trials disp('Neural Network Result') neuralNetResult = evaluateNeuralNetwork(inputs,weights) weights = learn(inputs, weights) disp('Error') evaluateNeuralNetError(1, neuralNetResult) end end /products/published-documents/,{{1 }}。

我想知道是否可以通过在MarkLogic中使多个URI指向同一文档来删除那​​些重复项(例如symlink?)。也许还有其他方法可以达到相同的效果。我已经考虑过使用集合,但是我们确实需要保留目录结构,以便用户可以继续通过WebDAV访问文件。

1 个答案:

答案 0 :(得分:3)

否,在MarkLogic中,文档具有一个且只有一个URI是一个相当低级的约束。但是,您可以使用XInclude或XPointer之类的模块化文档功能,并使用对规范URI的引用替换重复的文档。

Upgrade section of Kafka 0.10 documentation

在这种情况下,集合也可能会有所帮助,例如,将规范性文档分配给一个集合,将重复项分配给另一个。这样一来,仅查询规范文档会更简单。

但是,如果WebDAV是主要接口,则两者都不适合,因为WebDAV客户端会简单地使用XInclude URI引用打开浅表文档。

一个可能的例外是通过权限。也可以为规范文档和重复文档分配不同的权限,以使WebDAV用户无权访问重复文档。这样一来,浏览WebDAV的任何人都不会列出重复项。这种行为并不能完美地模仿符号链接,但可能足够接近。