2013-03-15 9 views
0

SQL 쿼리를 브로커 API 기능으로 변환합니다. 쿼리는 기본적으로 키 및 값 필터를 기반으로 사용자 지정 메타 데이터를 검색합니다. 문제는 내가 기준을 사용하여 두 가지 기준에 합류하거나 query.executequery에 걸리는 시간이 영원히 걸리며 컨트롤이 결코 반환하지 않는 경우입니다. 나는 새로운 orcriteria를 사용하여 배열과 같은 기준을 통과 시도했지만이 또한 작동하지 않았다OrCriteria가 Tridion 콘텐츠 전달 API를 사용하여 영원히 실행됩니다.

 PublicationCriteria pubCriteria = new PublicationCriteria(80); 

     //1st query 
     CustomMetaKeyCriteria keyCriteria1 = new CustomMetaKeyCriteria("PublicationType"); 

     CustomMetaValueCriteria valueCriteria11 = new CustomMetaValueCriteria("Report", Criteria.Like); 
     CustomMetaValueCriteria valueCriteria12 = new CustomMetaValueCriteria("Video", Criteria.Like); 
     Criteria valueCriteria1 = CriteriaFactory.Or(valueCriteria11, valueCriteria12); 
     Criteria criteria1 =CriteriaFactory.And(keyCriteria1, valueCriteria1); 

     //2nd query 

     CustomMetaKeyCriteria keyCriteria2 = new CustomMetaKeyCriteria("Tags"); 

     CustomMetaValueCriteria valueCriteria21 = new CustomMetaValueCriteria("tcm:80-20641", Criteria.Equal); 
     CustomMetaValueCriteria valueCriteria22 = new CustomMetaValueCriteria("tcm:80-20645", Criteria.Equal); 
     Criteria valueCriteria2 = CriteriaFactory.Or(valueCriteria21, valueCriteria22); 
     Criteria criteria2 = CriteriaFactory.And(keyCriteria2, valueCriteria2); 


     Criteria querycriteria = CriteriaFactory.Or(criteria1, criteria2); 
     Criteria finalCriteria = CriteriaFactory.And(pubCriteria, querycriteria); 
     Query query = new Query(criteria2); 
     query.SetResultFilter(new LimitFilter(10)); 
     var n = query.ExecuteQuery(); 

다음과 같이 내가 사용하고 코드입니다.

+0

Tridion 관련 질문은 http://tridion.stackexchange.com을 사용하십시오. –

+0

죄송합니다, 실제로 2 주 전 나는 tridion.stackexchage.com에 질문을하려고했지만 질문을 게시 할 수 없었지만 이제는 나를 허용합니다. 앞으로 나는 tridion.stackexchange에 질문을 할 것이다. – rdhaundiyal

+0

이번 주 초까지 개인 베타 버전이었습니다. –

답변