MarkLogic関数cts:urisの注意点

何かと不思議なcts:urisの注意点覚書です。
気づいたところがあれば追記していきます。

 

1.1つ目の引数は辞書的な意味で"最初の文字"を指定する
/apple/test/001.xml

/apple/test/002.xml

/apple/test/003.xml

/banana/test/001.xml

/orange/test/001.xml

役に立たない例ですが、何らかのクエリ($query)を用いて/apple/配下のドキュメントを検索しようと思い、このように書くと、

cts:yris("/apple/", (), $query)

 
クエリ条件が満たされている場合、/bananaや/orangeも検索結果に出てしまいます。

2.こうする
cts:directoryを使いましょう。

cts:uris( (), (),
     cts:and-query((cts:directory-query("/apple/"), $query)
     )
)