Установка имени коллекции динамически на основе исходной структуры каталогов - PullRequest
0 голосов
/ 08 ноября 2018

Я хотел бы динамически добавить оригинальное имя каталога как коллекция при загрузке файлов.

Предположим, имеется следующий файл: /home/sampledata/dir1/targetfile.xml Я хотел бы, чтобы targetfile.xml был включен в следующие коллекции: "home", "sampledata", "dir1"

Можем ли мы сделать это при импорте через MLCP? или буду признателен, если кто-нибудь может поделиться альтернативным способом достижения с помощью сценария.

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Вы можете использовать этот запрос:

  let $dir-seprator := "/"
  for $uri in cts:uri-match("*")[fn:ends-with(.,'.xml')][1 to 10]
  let $collection := fn:substring-before($uri,fn:tokenize($uri,$dir-seprator)[fn:last()])
  return 
  xdmp:document-set-collections($uri,fn:tokenize($collection,$dir-seprator)[.!='']))
0 голосов
/ 08 ноября 2018

Я бы порекомендовал использовать преобразование MLCP. Чаще всего он используется для манипулирования контентом перед вставкой, но с его помощью вы также можете настроить uri, коллекции и многое другое.

Общие сведения о преобразовании MLCP см. В https://docs.marklogic.com/guide/mlcp/import#id_82518

Для получения более подробной информации о параметрах вывода преобразования см .: https://docs.marklogic.com/guide/mlcp/import#id_59764

НТН!

...