1

我尝试使用 MLCP 导入和-output_uri_replace选项加载文档,例如

-output_uri_replace 
".*/,'',---,':',___,'/'" 

一切都很好,除了我需要在我的 URI 中保留方括号并且 MLCP 总是将它们编码%5B%5D

我尝试了不同的模式来强​​制它(或根本没有模式)但没有办法......

-output_uri_replace
".*/,'',---,':',___,'/',\[,'U\+005B',\],'\]'"

有相同经历或有解决方案的人吗?:)

4

1 回答 1

0

我也玩了一点,它看起来像是-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
};

于 2017-05-24T18:45:30.553 回答