C# 从sitecore中的搜索中排除模板

C# 从sitecore中的搜索中排除模板,c#,linq,sitecore,C#,Linq,Sitecore,我好像没法让它工作。我从一开始就有,但现在已经停滞了。我试图排除某些页面/模板。以下是我所拥有的: var query = PredicateBuilder.True<SearchResultItem>(); query = query.And(i => i.Paths.Contains(homeItem.ID)); query = query.And(i => i.Content.Contains(searchTerm)); query = query.And(i =&

我好像没法让它工作。我从一开始就有,但现在已经停滞了。我试图排除某些页面/模板。以下是我所拥有的:

var query = PredicateBuilder.True<SearchResultItem>();
query = query.And(i => i.Paths.Contains(homeItem.ID));
query = query.And(i => i.Content.Contains(searchTerm));
query = query.And(i => i.TemplateName != "MenuFolder");
query = query.And(i => i["Template"] != "/sitecore/templates/Common/Folder");
var query=PredicateBuilder.True();
query=query.And(i=>i.path.Contains(homeItem.ID));
query=query.And(i=>i.Content.Contains(searchTerm));
query=query.And(i=>i.TemplateName!=“MenuFolder”);
query=query.And(i=>i[“模板”!=“/sitecore/templates/Common/Folder”);

最后一个路径是“/sitecore/templates/Common/Folder”,我无法开始工作。我想确保在执行搜索时,搜索中不会出现任何文件夹。我使用了Path、Path、TemplateName、TemplateID的变体,但似乎无法使其正常工作。

尝试执行以下操作:

var query = PredicateBuilder.True<SearchResultItem>();
query = query.And(i => i.Paths.Contains(homeItem.ID));
query = query.And(i => i.Content.Contains(searchTerm));
query = query.And(i => i.TemplateName != "MenuFolder");
query = query.And(i => i.TemplateId != Sitecore.TemplateIDs.Folder);
var query=PredicateBuilder.True();
query=query.And(i=>i.path.Contains(homeItem.ID));
query=query.And(i=>i.Content.Contains(searchTerm));
query=query.And(i=>i.TemplateName!=“MenuFolder”);
query=query.And(i=>i.TemplateId!=Sitecore.TemplateId.Folder);
Sitecore.TemplateIDs.Folder是路径
/Sitecore/templates/Common/Folder
中文件夹的ID,其ID是
{A87A00B1-E6DB-45AB-8B54-636FEC3B5523}


谢谢

您确定该字段名为“模板”而不是其他名称吗?该字段不称为模板,这只是“快速信息”下的名称,说明文件夹的来源如果我没有弄错,您想排除所有基于通用/文件夹模板的文件夹,对吗?那么最简单的方法就是做一个i.TemplateID!=Sitecore.TemplateId.Folder。Sitecore为系统项提供了类似Sitecore.IDs和Sitecore.TemplateId的类,您可以从中获取ID。