我尝试使用 MLCP 导入和-output_uri_replace
选项加载文档,例如
-output_uri_replace
".*/,'',---,':',___,'/'"
一切都很好,除了我需要在我的 URI 中保留方括号,MLCP 始终将它们编码为 %5B
和%5D
我已经尝试了不同的模式来强制它(或根本没有模式(,但没有办法......
-output_uri_replace
".*/,'',---,':',___,'/',[,'U+005B',],']'"
有同样经验或解决方案的人吗?:)
我也玩了一下,看起来-output_uri_replace
是在 uri 编码之前执行的。撤消不需要的 uri 编码的唯一安全方法是使用转换。类似以下内容似乎可以解决问题:
xquery version "1.0-ml";
module namespace ingest = "http://marklogic.com/ingest-transform";
declare option xdmp:mapping "false";
declare function ingest:transform(
$content as map:map,
$context as map:map
) as map:map*
{
let $uri := map:get($content, "uri")
let $doc := map:get($content, "value")
let $_ := map:put($content, "uri", fn:replace(fn:replace($uri, "%5B", "["), "%5D", "]"))
return $content
};
哼!