4

CMS 中的内容用关键字标记,发布后它们用作跟踪键,每次加载页面时值都会增加。过去,DB Query 与 Tridion Broker DB 一起使用来生成标签云。我想改变它并改用 Tridion Broker API。

Tridion 在线文档有一个很好的示例 (首先登录到http://sdllivecontent.sdl.com/)。该示例显示了如何使用 API 获取关键字的计数。

我想要一个聚合查询,而不是一次获取 count 1 个关键字。是否可以使用 Broker API 或使用 Ambient Framework?

string strTaxURI = "tcm:34-70-512", strTaxKeywordURI = "tcm:34-549-1024";
Query myQuery = new Query();
Criteria myCriteria = null;

TaxonomyKeywordCriteria taxonomyKeywordCriteria = new TaxonomyKeywordCriteria(strTaxURI, strTaxKeywordURI, false);
myCriteria = taxonomyKeywordCriteria;
myQuery.Criteria = myCriteria;

// filter code limiting results commented out....

string[] itemURIs = myQuery.ExecuteQuery();
foreach (string itemURI in itemURIs)
{
      Response.Write(itemURI + ", ");
}
4

1 回答 1

4

不要以为你可以通过使用 BrokerQuery API 来实现你所需要的。但是,您可以使用分类 API 来获取完整的分类并查看该分类中每个关键字的 ReferencedContentCount。

TaxonomyFactory taxonomyFactory = new TaxonomyFactory();
Tridion.ContentDelivery.Taxonomies.Keyword category = taxonomyFactory.GetTaxonomyKeywords("tcm:9-3-512");
Response.Write(category.ReferencedContentCount);

if (category.HasChildren)
{
     // get the category.KeywordChildren and loop over them
}

希望这可以帮助。

干杯,丹尼尔。

于 2012-10-31T15:21:45.857 回答