Sitecore 搜索模板查询
Sitecore Search Template Query
我想在 Sitecore 中查询内容项的模板,如果项的模板与 templates
变量中包含的任何 TemplateID 相匹配,它就会得到 returns 结果。 templates
变量包含要在内容项上搜索的 TemplateID 的竖线分隔列表。
我尝试了几种不同的方法,但都没有提供我正在寻找的结果。下面是一个这样的例子,我还尝试使用模板字符串上的拆分来分离每个模板,并 运行 在下面使用 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);
我想在 Sitecore 中查询内容项的模板,如果项的模板与 templates
变量中包含的任何 TemplateID 相匹配,它就会得到 returns 结果。 templates
变量包含要在内容项上搜索的 TemplateID 的竖线分隔列表。
我尝试了几种不同的方法,但都没有提供我正在寻找的结果。下面是一个这样的例子,我还尝试使用模板字符串上的拆分来分离每个模板,并 运行 在下面使用 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);