Reputation: 1225
I am using sitecore 7 Lucene search. When I search for any term, the search results show all folders and pages. Can I exclude folders from the search result? I have following code to search documents from index.
var searcher = Sitecore.ContentSearch.ContentSearchManager.GetIndex("sitecore_web_index");
using (var context = searcher.CreateSearchContext())
{
var query = context.GetQueryable<SearchResultItem>();
var result = query.Where(x => (x.Content.Contains(_searchTerm));
globalResults = result.GetResults();
}
Upvotes: 0
Views: 826
Reputation: 867
If you wish to limit your search to a specific folder you can add something like this:
var TopSearchFolderID = new Guid("{A5D56753-E5E4-42A1-AD3E-4B43C70CC618}");
var result = query.Where(x => x.Content.Contains(_searchTerm) & x._path == TopSearchFolderID.ToString("N"));
If you wish to exclude specific folders you can do something like this:
var FolderToExcludeID = new Guid("{A5D56753-E5E4-42A1-AD3E-4B43C70CC618}");
var result = query.Where(x => x.Content.Contains(_searchTerm) & x._path != FolderToExcludeID.ToString("N"));
Upvotes: 1
Reputation: 4456
I believe SearchResultItem
has a TemplateId
property, so you can filter out folder items using that.
var result = query.Where(x => (x.Content.Contains(_searchTerm) &&
x.TemplateId.ToString() != "{--Folder-template-id--}");
Upvotes: 1