0

如果我想知道 alfresco 中的所有文件以在 alfresco 页面上显示如何首先做到这一点?

现在我找不到对数据库的 api 访问,如果我找到 api,下一步该怎么办?

4

3 回答 3

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());

但我不确定它对性能的优化程度。

于 2012-10-04T15:36:21.733 回答
1

简单的方法,您可以通过 api 查询数据库中的所有类型:localhost:8080/alfresco/service/cmis/query?q={q}
q 是alfresco 的CMIS 查询语言。例如SELECT * FROM cmis:document,它选择所有文档的所有属性

查看更多CMIS 查询语言

于 2012-12-10T08:32:26.220 回答
1

根据我的经验,有时最好从数据库中获取此类信息。

仅供参考:在我当前的项目中,我们在 repo 中有超过 50000 个文档,我需要获取确切的数量进行监控。

以下是在某些情况下使用数据库查询的几点:

  1. CMIS 慢得多(在我的情况下,每次查询大约需要 1-2 秒)。正如@lightoze 建议的那样,您可以使用SearchService,但随后您将获取文档ResultSet,因此在您还需要调用length方法来获取它们的数量之后,我认为这比 sql 调用更耗时。就我而言,我每 5 分钟打一次电话。

  2. 5.0.c 中有一个错误,它将某些查询的结果限制为 1000 个文档。

在这里您可以找到如何连接到数据库以及一些有趣查询,包括 repo 中的文档总数。

于 2015-07-16T08:42:02.453 回答