套上:置换Query.QueryOperator方法?(Tridion: Replacement f

2019-06-28 06:13发布

Query.QueryOperator.AND_Field我们使用在外表套上R5.3 VBscript的模板,这个方法,效果不错。 近日,在迁移到的tridion 2011 SP1中,我们试图用这种方法,但它并不作品。 我们理解,这种方法在新的tridion版本贬值。

按照论坛中的一些帖子,我们也能在CD_Storage_Conf下面几行:

<SearchFilter Name="SearchFilter" Class="com.tridion.broker.components.meta.MsSqlSearchFilterHome" defaultStorageId="defaultdb"/> 
<Item typeMapping="Query" storageId="defaultdb"/>

现在的问题是,什么是更换“Query.QueryOperator.AND_Field”的方法呢? 我们如何使用C#这个过滤器? 如何使用在支持API的文件中提到的经纪查询机制?

谢谢。

Answer 1:

在支持SDL Tridion 2011内容交付,您创建一个Query对象,并添加一个Criteria使用对象将其setCriteria方法。 所述Query对象接受一个标准唯一对象,但Criteria对象又可以参考其他Criteria在树结构中的对象。

为了创建同时使用AND和OR运算查询过滤器的一个很好的例子,请参阅创建过滤器在SDL LiveContent的支持SDL Tridion 2011 SP1文档。

// Schema has ID of either 511 (Article) or 34 (Press Release).
ItemSchemaCriteria IsArticle = new ItemSchemaCriteria(511);
ItemSchemaCriteria IsPressRelease = new ItemSchemaCriteria(34);
Criteria IsArticleOrPressRelease = CriteriaFactory.Or(IsArticle, IsPressRelease);

// Type of the item is 16 (Component).
ItemTypeCriteria IsComponent = new ItemTypeCriteria(16);

// Both of the above conditions must be true
Criteria AllCriteria = CriteriaFactory.And(IsArticleOrPressRelease, IsComponent);

// Add these criteria to a query
Query MyQuery = new Query();
MyQuery.Criteria = AllCriteria;


文章来源: Tridion: Replacement for Query.QueryOperator method?