简体   繁体   中英

OrCriteria taking forever to execute using Tridion content delivery api

I am converting a SQL query into broker API functionality. The query basically retrieves custom meta data based on key and value filters. The issue is when I am joining two criteria using or criteria the query.executequery takes forever and the control never returns. The code that I am using is as below

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

I have tried using new orcriteria and passing the criteria as array but this also didn't work.

Couple of weeks back I tried the same, it worked for me. I have put my findings here. http://vadalis.com/custom-meta-query-from-tridionbroker-database/

Note : my broker database is very small.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM