带有反斜杠的MarkLogic目录

时间:2015-09-30 10:15:19

标签: marklogic

目前,MarkLogic已将多个文档加载到错误的文件分隔符" \" (反斜杠)如下所示。

\TEST\fldr1\fldr2\fldr3\test.xml
\TEST\fldr1\fldr2\fldr3\test1.xml
\TEST\fldr1\fldr2\fldr3\test2.xml

当我尝试表演时,

cts:directory-query("\TEST\fldr1\fldr2\fldr3\", "1") 

我收到以下错误。

Directory URI must end with "/"

请让我知道如何处理这个问题。

1 个答案:

答案 0 :(得分:3)

使用这些URI,MarkLogic没有查看目录,因此即使转义反斜杠,目录查询也不会起作用。要进行目录查询,您需要重新插入它们。如果不是太多,您可以使用此代码:

(: TEST IN YOUR ENVIRONMENT BEFORE RUNNING! :)
for $uri in cts:uri-match('\*')
return (
  xdmp:document-insert(
    fn:replace($uri, '\\', '/'),
    fn:doc($uri),
    xdmp:document-get-permissions($uri),
    xdmp:document-get-collections($uri)
  ),
  xdmp:document-delete($uri)
)

根据您拥有的文档数量,您可以在查询控制台中执行此操作。如果没有,您可以增加交易时间限制或查看Corb2