如果我想知道 alfresco 中的所有文件以在 alfresco 页面上显示如何首先做到这一点?
现在我找不到对数据库的 api 访问,如果我找到 api,下一步该怎么办?
您可以对 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());
但我不确定它对性能的优化程度。
简单的方法,您可以通过 api 查询数据库中的所有类型:localhost:8080/alfresco/service/cmis/query?q={q}
q 是alfresco 的CMIS 查询语言。例如SELECT * FROM cmis:document
,它选择所有文档的所有属性
查看更多CMIS 查询语言
根据我的经验,有时最好从数据库中获取此类信息。
仅供参考:在我当前的项目中,我们在 repo 中有超过 50000 个文档,我需要获取确切的数量进行监控。
以下是在某些情况下使用数据库查询的几点:
CMIS 慢得多(在我的情况下,每次查询大约需要 1-2 秒)。正如@lightoze 建议的那样,您可以使用SearchService
,但随后您将获取文档ResultSet
,因此在您还需要调用length
方法来获取它们的数量之后,我认为这比 sql 调用更耗时。就我而言,我每 5 分钟打一次电话。
5.0.c 中有一个错误,它将某些查询的结果限制为 1000 个文档。