2012-02-09 120 views
1

我是新來的marklogic。任何人都可以請我提供一個腳本來獲取文檔的文檔名稱和XML文件內容,並通過傳遞屬性值來上傳/創建時間戳。Marklogic搜索查詢

回答

3

這個問題很難理解。 MarkLogic中的文檔由URI標識,而不是名稱。如果您知道URI,那麼只需做

doc($uri) 

獲取內容。最後修改時間爲一個文件存儲爲文件屬性,你可以使用XPath性能軸狀

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

還有其他的方法來獲取文檔屬性,如xdmp:document-properties() API調用。

2

除了@ eric-bloch的回答,如果你做了搜索,你可以使用fn:base-uri()xdmp:node-uri()來確定uri。例如像這樣:

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

注意:空和查詢是一個小技巧來獲取所有文檔返回。 1至10謂詞確保您不會一次返回整個數據庫,而只會獲得前十個數據庫。如果您要在最後修改的屬性上添加訂單,則可以通過這種方式獲得十個最舊或最新的文檔。

+0

我認爲你的意思是「但只有前十」(不是兩個)。 – 2012-02-09 11:44:04

+0

Thnx @ evan-lenz,修復了答案.. – grtjn 2012-02-09 17:42:53