簡體   English   中英

加載多個XML文件(MarkLogic)

[英]Load multiple XML file (MarkLogic)

我需要在許多文件中進行搜索,但不想在查詢中寫入它們的名稱。 就我而言,我需要查詢500個名稱完全不同的XML文件 所以,有什么辦法。

我可以說:

for $x in doc("ALL XML files under a specific directory")
return $x/Something

我正在使用UbuntuMarkLogic5

如果您的文檔實際上在“目錄”中(例如,它們是類似“ /a/b/c.xml ”的URL形式),則可以使用xdmp:directory()

http://docs.marklogic.com/xdmp:目錄

for $x in xdmp:directory("/a/b/") 
return $x/something

如果用“目錄”表示Marklogic目錄,則Mads的回答是正確的。 如果您指的是文件系統路徑,那么答案是在Marklogic處理文檔之前,您需要將它們加載到數據庫中。

為此,請查看ML計算機上的端口8000(localhost?),然后在該頁面上選擇“加載內容”選項。 這將允許您選擇要從中加載文檔的文件系統目錄。

通過在加載之前更改“文檔設置”,您還可以選擇應保留多少文件系統路徑(如果有的話)作為Markloic中文檔URI的一部分,並為所有加載的文檔分配一個集合。 我鼓勵您同時做這兩項; 一旦載入,它們將簡化所有這些文檔的唯一引用(使用完成后,即可查詢或刪除)。

加載文檔后,您可以使用xdmp:directory()fn:collection()或您喜歡的任何其他方法來查詢它們。

如果用戶具有正確的權限,則可以從Marklogic查看文件系統。 您可以通過這種方式將數據加載到marklogic中,但是您不應該以這種方式查詢數據。

這是一個示例,可能會幫助您找到所需的內容。

 declare namespace dir = "http://marklogic.com/xdmp/directory";

  for $file in xdmp:filesystem-directory("/home/user/desktop/xml/")/dir:entry

  return xdmp:filesystem-file($file/dir:filename) 

要在特定目錄中搜​​索文件,請查看cts:directory-query()和文檔中的示例。

http://docs.marklogic.com/cts:目錄查詢

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM