2

我遇到了一个问题,即调用https://localhost:8080/alfresco/service/api/people只返回前 5000 个用户。

我不知道如何从系统中取出其余部分——该 API 似乎不支持“skipCount”参数。

我认为我可以通过使用 WebDAV URL ( https://localhost:8080/alfresco/webdav/User%20Homes/) 获取至少一个用户名列表来获取列表,但这也只返回前 5000 个。

那么,如何获取 5001 以后的用户列表呢?

4

1 回答 1

3

您可以提供一个 maxResult 参数。

例如https://localhost:8080/alfresco/service/api/people?filter=*&maxResults=10000

如果您查看此 JIRA 票证,您会发现当您在查询中提供 * 时,它将通过 SOLR 进行搜索,而当您不提供时,它将搜索 DB。

如果您查看下面的 JAVA 代码:

public PagingResults<PersonInfo> getPeople(String pattern, List<QName> filterStringProps, List<Pair<QName, Boolean>> sortProps, PagingRequest pagingRequest)
    {
        ParameterCheck.mandatory("pagingRequest", pagingRequest);

您可以提供一个PagingRequest,因此您可以分页显示您需要 5000 之后的行/结果。

您仍然需要制作一个检索结果的 Java-Backend Webscript。

- -更新 - -

在 org.alfresco.repo.jscript.People 中有一个 maxResult:

private int defaultListMaxResults = 5000;

如果你再看一点,那么这个类是在script-service-context.xml中启动的。所以只需覆盖 bean peopleScript并将 defaultListMaxResults 设置为更高的 nr,重新启动 Alfresco,它应该可以工作。

于 2013-08-09T21:12:49.423 回答