我有一个“特色”小工具,引导访问者到我想要在某些页面上展示的项目。因此,我正在尝试让Alex Shyba的Advanced Database Crawler for Sitecore返回所有引用上下文项的项。如果我输入一个模板ID,它就能正常工作。但是如果我通过管道分隔这两个模板,我永远得不到结果。我做错了什么?
var searchParam = new MultiFieldSearchParam()
{
Database = Sitecore.Context.Database.Name,
Language = Sitecore.Context.Language.Name,
TemplateIds = "{E5B41848-3C07-4F17-84A5-C2C29AD43CAE}|{0C2E35D7-C4C9-478B-B4AB-DE8C2A00908B}"
};
var refinements = new List<MultiFieldSearchParam.Refinement>();
refinements.Add(new MultiFieldSearchParam.Refinement("pages", contextItemGUID));
searchParam.Refinements = refinements;
var runner = new QueryRunner("web");
foreach (var skinnyItem in runner.GetItems(searchParam))
{
yield return skinnyItem.GetItem();
}同样,如果我将该TemplateIds设置为单个GUID (任一),它将按预期工作,但显然只是返回指定模板的项。
发布于 2012-08-16 00:39:40
正如Mark所指出的,这是ADC中的一个错误。我们的解决方案是按如下方式重构ApplyTemplateFilter方法:
protected void ApplyTemplateFilter(CombinedQuery query, string templateIds, QueryOccurance occurance)
{
ApplyIdFilter(query, BuiltinFields.Template, templateIds, occurance);
}https://stackoverflow.com/questions/11809520
复制相似问题