【问题标题】:How to get more than 100 records from alfresco repository using CMIS如何使用 CMIS 从 alfresco 存储库中获取 100 多条记录
【发布时间】:2016-10-14 10:15:44
【问题描述】:

我在CMIS下面写了查询。

Query= 从 cmis:document 中选择 *

但它只返回前 100 个结果。实际上在 Repository 中有超过 100 个结果。

那么我怎样才能使用相同的查询获得所有结果?

我在CMIS代码下面写了--

代码=

  public ArrayList<JSONObject> search() {
    ItemIterable<QueryResult> results =null;    
    StringBuilder sb=null;
    sb = new StringBuilder();

    sb.append("select * from hr:hrdoctype");
    CMISSession1 s=new CMISSession1();        
    Session session=s.getSession();

    // execute query
    results = session.query(sb.toString(), false);

    ArrayList<JSONObject> list=new ArrayList<>(); 

    for (QueryResult qr : results) {

        GregorianCalendar gc = (GregorianCalendar) qr.getPropertyValueById("cmis:creationDate");        


        try{

         int month = gc.getTime().getMonth();  
         -
         -
         -


       }
       catch(org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException e)
       {

       }


       }

        -------------      
         list.add(json);
    }

    return list;

}

请帮忙。

提前致谢。

【问题讨论】:

  • 你能提供你正在使用的代码吗?
  • @Florinan Muller 为什么要查看代码。我认为不需要代码。我已经提供了查询。如果我们在 Alfresco 共享节点浏览器中执行相同的查询,我们也会得到前 100 个结果。所以请检查一次。谢谢…………
  • 如何调用查询可能是必不可少的。例如,如果您使用 OpenCMIS 并且不提供您自己的 OperationContext,它将获得 100 个命中的批次。
  • 好的,等一下。我会修改问题
  • @Florian Muller ,我已经修改了问题。如果我做错了什么,请告诉我......

标签: alfresco alfresco-share cmis alfresco-webscripts


【解决方案1】:

从 OpenCMIS 的角度来看,这看起来不错。 但是,出于性能原因,您应该更改批量大小:

OperationContext oc = session.createOperationContext();
oc.setMaxItemsPerPage(10000); // batch size, default = 100
results = session.query(sb.toString(), false, oc);

另请参阅此主题:https://community.alfresco.com/thread/206836-alfresco-cmis-query-returning-only-100-results

【讨论】:

  • 感谢弗洛里安,它的工作:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-24
  • 1970-01-01
相关资源
最近更新 更多