2017-04-19 13 views
2

CMIS 쿼리를 사용하여 1000 개의 문서 만 가져올 수 있습니다. 하지만 저장소에서 사용할 수있는 모든 문서를 가져오고 싶습니다.CMIS 쿼리를 사용하여 1000 개 이상의 문서를 얻는 방법

나는 이것에 관한 몇 가지 해결책을 읽었다. 우리는 repository.properties 파일에서 몇 가지 설정을하고 문서를 얻을 수있다.

하지만 여기서 제 질문은 제작 저장소에 액세스하고 있기 때문에 CMIS의 코드를 통해 할 수 있습니다. repository.properties 파일을 변경하려면 비즈니스 사용자가 다운 시간을 필요로합니다. 내 경우에는 불가능합니다.

그래서 프로그래밍 솔루션을 찾고 있습니다.

아무도 도와 줄 수 있습니까?

미리 감사드립니다.

+2

페이징을 사용하지 않고 1000 블록 단위로 가져 오는 이유는 무엇입니까? 저장소에 대한 스트레스가 적습니다. – Gagravarr

+1

@Gagravarr 페이징에 대해별로 생각하지 않습니다. 그것이 저에게 저장소에서 모든 결과를 줄 것입니다. 그리고 가능하다면, 샘플 코드와 CMIS와 함께 사용하기위한 몇 가지 단계를 제공해 주실 수 있습니까? 감사합니다 –

+2

어떻게 CMIS를 사용하고 있는지 알지 못해도 할 수있는 일이 많지 않습니다. 우리는 약간의 코드를 볼 필요가있을 것이다! PortCMIS에서 .Net을 사용하는 방식은 Python과 cmislib와는 다소 다릅니다 (예 : – Gagravarr

답변

3

이것은 저장소의 구성 때문인 것 같습니다.

봅니다 /shared/classes/alfresco-global.properties이를 추가하고 다시 시작합니다 :

  • system.acl.maxPermissionCheckTimeMillis에게 = 25000
  • system.acl.maxPermissionChecks = 3500

solr을 사용하는 경우이 파일을 추가 할 수도 있습니다.

  • solr.query.maximumResultsFromUnlimitedQuery 3500

당신은 여기에 도움이 찾을 수 = 내가 당신에게 줄

+0

사실 여러 장소에서이 답변을 찾았지만 야외에서 손대지 않고도 cmis 코드를 통해 동일한 작업을하고 싶었습니다. 그것은 가능합니까 ??? –

+0

아니요, 불가능합니다. 값을 변경하거나 일종의 페이징, 일괄 처리 등을 조사 할 수 있습니다. – Lista

+0

추가해야 할 solr에 대한 새로운 속성이 있습니다. solr.query.maximumResultsFromUnlimitedQuery = 3500 그리고 Lista는 아무도 당신이 cmis qry로 제어 할 수 없다고 말했습니다. JMX를 통해 이러한 설정을 변경할 수 있지만 데이터베이스에 설정되어 있고 구성 파일보다 우선 순위가 높습니다. – prignony

2

솔루션 쿼리와 연결되지 않습니다 또는 페이지 크기,이 단계를 수행 할 수 있습니다 (한 번 같은 문제가 발생했습니다.

가 절약 클래스

만들기) 나를 위해 rked 알뜰 클래스 (저장소에 대한 가장 중요한 정보를 보유 내가 저장소에 대해 말할 때 내가

) 폴더 + 파일을 의미 자바 클래스 당신이 당신의 세이버 클래스에서 사용할 필요가

정보

1 - 경로 (당신은 것입니다 b -

이 이름을

3)를 uild -

는 재귀 함수

이 기능 parcour 모든 트리를 사용하여 프레스코 ID와 클래스 보호기 당신의 모든 요소를 ​​저장,이

모양을
public void getTree(Tree<FileableCmisObject> tree, SaverClass father, String serverURL, String login, String password) { 

    SaverClass enr = new SaverClass(); 
    enr.setName(tree.getItem().getName()); 

    if ((father.getPath()).equals("/")) /// IN CASE IT'S THE ROOT 
    { 
     enr.setPath("/" + tree.getItem().getName()); 

    } else { 
     enr.setPath(father.getPath() + "/" + tree.getItem().getName()); 
    }   
    enr.setFather(father.getNom()); 
    for (Tree<FileableCmisObject> t : tree.getChildren()) { 
     getTree(t, enr, serverURL, login, password); 
    } 

} 

목록의 모든 요소를 ​​저장 한 후에는 목록의 모든 요소에 대해 마이그레이션 방법을 사용해야 만합니다 (Alfresc o 신분증은 괜찮습니다. 경로를 사용하려면 OK입니다.)

희망이 당신을 도왔습니다.

+0

이 솔루션은 다소 어려울 수 있지만 시간이 많이 걸릴 것이라고 확신합니다. 그것을 만들 수있다. –