MarkLogic: как использовать and-query в cts: uris? - PullRequest
2 голосов
/ 11 июля 2019

Я нашел объяснения по поводу cts:uris, и есть два примера ниже.

В чем разница между ними. Кажется, что они будут выполнять ту же работу, но некоторые говорят, что последний лучше, потому что он быстрее.

Пожалуйста, дайте мне объяснение, заранее спасибо.

Пример 1:

cts:uris(@@@, (), cts:element-value-query(@@@@))

Пример 2:

cts:uris((), (), 
  cts:and-query((
    cts:directory-query(@@@),
    cts:element-value-query(@@@@))))

1 Ответ

3 голосов
/ 11 июля 2019

Приведенные выше примеры не совпадают. Важно понимать, что первый аргумент является лишь отправной точкой для значений, но не ограничивает конец. Если вы передадите «b», оно начнется с «b *», но продолжится с «c *» и далее. Это относится ко всем поискам словаря, включая cts:values и cts:collections.

Если вам нужно получить урис на определенном пути, вам, вероятно, лучше использовать cts:uri-match.

Это правда, что передача запроса каталога в качестве аргумента может повысить производительность. Это также относится к cts:uri-match.

НТН!

...