是否有一种方法可以更新在Marklogic-9中的MarkLogic-8中摄取的双时态文档?当前,临时更新API仅适用于ML-9或更高版本中提取的文档。请提出建议。 正在产生以下错误:
未找到元数据TemporalDocURI。临时节点更新内置插件仅适用于使用ML9或更高版本创建的临时文档
答案 0 :(得分:1)
要升级它们,您只需使用ML9在它们上运行temporal:document-insert。您应该能够做到这一点,而无需为“干净”升级而对文档内容进行任何更改。
答案 1 :(得分:0)
要使ML-8双时态文档在ML-9中可更新,我们需要在要进行更新的现有文档URI上添加新的元数据“ temporalDocURI”。
示例代码:
let $uri := "/documents/test.xml"
return xdmp:document-put-metadata(
$uri,map:map(<map:map xmlns:map="http://marklogic.com/xdmp/map">
<map:entry key="temporalDocURI">
<map:value>{$uri}</map:value>
</map:entry>
</map:map>))
一旦将元数据添加到我们要更新的双时态文档中,则用于节点更新或插入的临时api将适用于ML-9之前插入的所有文档。
注意为了使“ xdmp:document-put-metadata” API在时态文档上起作用,对于时态文档所属的时态集合(如果用户是用户),它将需要覆盖特权。进行更改的不是管理员用户,则需要为该用户添加精细的执行特权,然后执行“ xdmp:document-put-metadata”。