Поиск и получение из нескольких коллекций в MarkLogic? - PullRequest
0 голосов
/ 22 октября 2018

Как я могу исправить следующий код, если я хочу указать несколько коллекций?(например, «pdf» И «systemA»)

for $doc in fn:collection("pdf")

1 Ответ

0 голосов
/ 22 октября 2018

Если вы хотите получить документы, которые находятся в или , "A" или "B" коллекциях.в MarkLogic вы можете передать несколько URI: fn:collection(("A","B")).Если вы хотите, чтобы документы находились в обеих коллекциях "A" и "B" одновременно, вам нужно будет либо выполнить это как поиск

cts:search(doc(), 
  cts:and-query((cts:collection-query("A"),cts:collection-query("B")),"unfiltered")

, либо выполнить пересечение набороввручную

let $as := fn:collection("A")
return fn:collection("B")[not(. is $as)]

Поиск будет более эффективным, поскольку он может использовать индексы для разрешения.

...