MarkLogic Search Xquery - PullRequest
       2

MarkLogic Search Xquery

0 голосов
/ 20 февраля 2012

Использование следующего порядка 2 MarkLogic Xqueries для получения ожидаемого результата:

  1. Для вывода всех документов по отметке времени

    for $x in xdmp:document-properties()//prop:last-modified  
    order by $x descending 
    return <uri>{xdmp:node-uri($x)} {$x}</uri>
    
  2. Для поиска строки в документе из последнего файла

    for $a in doc("/contentC:/MLDemo/DataFiles/1234.xml")/*//@System_Name
    where $a ="Exchange"
    return $a
    

Я новичок в Marklogic и Xquery. Может кто-нибудь plesae помочь мне объединить эти два отдельных сценария в один сценарий.

Заранее спасибо.

Ответы [ 4 ]

1 голос
/ 13 марта 2015

let $URI:=<uris>{ for $x in xdmp:document-properties()//prop:last-modified<br> order by $x descending return <uri>{xdmp:base-uri($x)}</uri> }</uris>

for $a in $URI//uri let $doc:= doc($a)/*//@System_Name where $a ="Exchange" return $a

1 голос
/ 21 февраля 2012

Если вы не меняете конфигурацию по умолчанию, prop:last-modified должно помочь.

См. https://docs.marklogic.com/guide/app-dev/properties, чтобы узнать больше о свойствах.

Обратите внимание, что /*//@System_Name where $a ="Exchange" будетне работает хорошо для больших баз данных.Укажите элемент и используйте предикат XPath.Попробуйте что-то более похожее на /a/b/c[@d eq $value] - или если у вас есть несколько элементов /a/b/(c|d|e)[@z eq $value]

0 голосов
/ 24 февраля 2015
for $a in doc("/contentC:/MLDemo/DataFiles/1234.xml")/*//@System_Name
return 
if($a eq "Exchange") then
       for $x in xdmp:document-properties()//prop:last-modified  
       order by $x descending 
       return <uri>{xdmp:node-uri($x)} {$x}</uri>
else ()
0 голосов
/ 20 февраля 2012

Есть много ответов на этот вопрос.

Я бы порекомендовал вам изучить базовый синтаксис XQuery.Например, попробуйте http://www.amazon.com/XQuery-Priscilla-Walmsley/dp/0596006349

...