Поисковый запрос Marklogic

Я новичок в marklogic. Может ли кто-нибудь предоставить мне сценарий для получения имени документа и содержимого XML-файла документа, а также загруженной / созданной метки времени путем передачи значения атрибута.


person user1198539    schedule 09.02.2012    source источник


Ответы (2)


В дополнение к ответу @ eric-bloch, если вы выполнили поиск, вы можете определить uri, используя fn:base-uri() или xdmp:node-uri(). Например так:

for $d in cts:search(doc(), cts:and-query(()))[1 to 10]
return fn:base-uri($d)

Примечание: пустой запрос и - это небольшая уловка, позволяющая вернуть все документы. Предикат от 1 до 10 гарантирует, что вы получите не всю базу данных сразу, а только первые десять. Если бы вы добавили заказ по последнему измененному свойству, таким образом вы могли бы получить десять самых старых или самых новых документов.

person grtjn    schedule 09.02.2012
comment
Я думаю, вы имели в виду только первые десять (а не два). - person Evan Lenz; 09.02.2012

Этот вопрос трудно понять. Документы в MarkLogic идентифицируются по URI, а не по имени. Если вы знаете URI, просто сделайте

doc($uri) 

получить содержимое. Время последнего изменения документа сохраняется как свойство документа, которое можно получить с помощью оси свойств XPath, например

doc($uri)/property::*:last-modified/string()

Есть и другие способы получить свойства документа, например вызов API xdmp:document-properties().

person Eric Bloch    schedule 09.02.2012