Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tridion查询:基于关键字列表筛选/排除组件_Tridion_Tridion 2011_Tridion Content Delivery - Fatal编程技术网

Tridion查询:基于关键字列表筛选/排除组件

Tridion查询:基于关键字列表筛选/排除组件,tridion,tridion-2011,tridion-content-delivery,Tridion,Tridion 2011,Tridion Content Delivery,我正在使用Tridion.ContentDelivery.DynamicContent.Query。 我试图通过分类关键字my code筛选组件并排除其中一些组件: List<Criteria> excludeCriteria = new List<Criteria>(); foreach (string keywordUri in excludeKeywords) { excludeCriteria.Add(new TaxonomyKeywordCriteria

我正在使用Tridion.ContentDelivery.DynamicContent.Query。 我试图通过分类关键字my code筛选组件并排除其中一些组件:

List<Criteria> excludeCriteria = new List<Criteria>();
foreach (string keywordUri in excludeKeywords)
{
    excludeCriteria.Add(new TaxonomyKeywordCriteria(categoryUri, keywordUri, false));                                
}
Criteria criteria = new NotInCriteria(new AndCriteria(excludeCriteria.ToArray())));
Query query = new Query(criteria);
List excludeCriteria=new List();
foreach(excludeKeywords中的字符串关键字URI)
{
Add(新的分类标准keywordcriteria(categoryUri,keywordUri,false));
}
Criteria Criteria=新的Notinctriria(新的AndCriteria(excludeCriteria.ToArray());
查询=新查询(条件);

问题是,在结果中,我有一个只按其中一个分类标准过滤的列表。将应用excludeKeywords列表中的第一个条件,而忽略所有其他条件。

我不完全确定,但我有一种感觉,当您添加这样的条件时,您会以某种方式得到一个OR列表(您可以查看代理的调试日志,其中应该执行查询)

你能用另一种方式试试吗,把你的分类法关键字标准包装在一个NotInCriteria中,然后把它们添加到and标准中?比如说:

List excludeCriteria=new List();
foreach(excludeKeywords中的字符串关键字URI)
{
添加(新的NotInCriteria(新的分类标准keywordcriteria(categoryUri,keywordUri,false));
}
Criteria=新的AndCriteria(排除Criteria.ToArray());
查询=新查询(条件);

Hi@Vitaliy。您能否打开跟踪日志记录、重新启动webApp、加载页面并检查为BrokerQuery创建的JPQL查询?您应该能够看到这样的条目:“TRACE-JPAQueryDAO-Broker-Query-generated:”。请复制/粘贴它以查看更多正在发生的事情。在这种情况下,仅应用excludeKeywords列表中的最后一个条件。然后确实按照@sea_gull的建议进行跟踪,并提供更多信息以供我们使用