Sitecore搜索模板查询
本文关键字:查询 搜索 Sitecore | 更新日期: 2023-09-27 18:00:36
我想查询Sitecore中内容项的模板,以便在该项的模板与templates
变量中包含的任何TemplateID匹配时返回结果。templates
变量包含要在内容项上搜索的TemplateID的管道分隔列表。
我尝试了几种不同的方法,但没有提供我想要的结果。下面是一个这样的例子,我还尝试使用templates字符串上的split来分离每个模板,并在下面运行foreach循环。
var multiSearchParam = new MultiFieldSearchParam
{
Database = dbName,
InnerCondition = QueryOccurance.Should
};
multiSearchParam.TemplateIds = templates;
parameters.Add(multiSearchParam);
我觉得我使用的条件好像有问题。。。。当我只使用一个模板ID运行这个时,它就像一个魅力,所以查询多个模板似乎是个问题。
有人对我做错了什么有什么建议吗?
使用Sitecore ContentSearch,我就是这样解决的:
Expression<Func<SearchResultItem, bool>> predicate = PredicateBuilder.True<SearchResultItem>();
predicate = predicate.Or(p => p.TemplateName.Equals("News"));
predicate = predicate.Or(p => p.TemplateName.Equals("Page"));
IEnumerable<SearchResultItem> results = _searchContext
.GetQueryable<SearchResultItem>()
.Where(predicate);