2012-10-03 69 views
0

如果我想知道一些在戶外的所有文件在戶外網頁上顯示如何做到這一點?如何顯示來自戶外數據庫的數據?

現在我沒有找到API訪問數據庫,如果我找到API,接下來應該做什麼?

+3

你不想直接與數據庫交談,這是肯定的!您可能想要使用SearchService,NodeService或FileFolderService之類的內容,具體取決於您想要執行的操作。當你說「所有文件的數量」時,你是指釐米數量的內容節點嗎?節點總數? cm:網站中的內容節點數量?等 – Gagravarr

+0

非常感謝@ Gagravarr,現在我知道我必須使用FileFolderService,在FileFolderService有很多方法,[鏈接](http://dev.alfresco.com/resource/docs/java/repository/org/alfresco/service/ cmr/model/FileFolderService.html),我必須使用listFiles方法嗎?我不知道。如何我嘗試一種方法來查看倉庫中的所有文件alfresco? – Mark

+0

儘管「存儲庫中的所有文件」是什麼意思?正如我之前所說的,你的意思是釐米數量:內容節點?節點總數? cm:網站中的內容節點數量? etc – Gagravarr

回答

1

簡單的方法,你可以通過API查詢,數據庫中的所有類型:localhost:8080/alfresco/service/cmis/query?q={q}
q爲CMIS查詢語言的露天。例如SELECT * FROM cmis:document它選擇的所有文件

所有屬性看多CMIS Query Language

3

您可以查詢到SearchService,像這樣:

SearchParameters params = new SearchParameters(); 
params.getStores().add(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE); 
params.setLanguage(SearchService.LANGUAGE_FTS_ALFRESCO); 
params.setQuery("TYPE:cm\\:content AND PATH:\"/app\\:company_home/st\\:sites/cm\\:test/cm\\:documentLibrary//*\""); 
ResultSet result = searchService.query(params); 
System.out.println(result.length()); 

但我不知道如何優化其性能。

1

根據我的經驗,有時這是更好地從數據庫中獲得這樣的信息。

僅供參考:在我目前的項目中,我們有超過50000個回購文件,並且需要獲得確切的監測數量。

下面是幾點使用DB查詢在某些情況下

  1. CMIS是(多)慢(在我的情況下,它花了每個查詢約1-2秒)。由於@lightoze建議你可以使用SearchService,但是你會得到ResultSet中的文檔,所以在你需要調用length方法來獲得它們的數量之後,我認爲這比較費時,而不是sql調用。在我的情況下,我每5分鐘就會打這樣的電話。

  2. 5.0.c中有一個bug,它將某些查詢的結果限制爲1000個文檔。

Here你可以找到如何連接到數據庫,並here一些有趣的查詢,包括在回購文檔總數。

相關問題