我已经创建了umbraco搜索,其中我想要一些不应该被搜索的节点,所以我可以做的是我应该在搜索条件中定义或sholud我在检查配置文件的设置或索引设置代码中做一些事情 IndexSet SetName="De
<IndexSet SetName="DemoIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/DemoIndex/"> <IndexAttributeFields/> <IndexUserFields/> <IncludeNodeTypes/> <ExcludeNodeTypes> <add Name="News" /> </ExcludeNodeTypes> </IndexSet>
并检查设置文件
<add name="DemoIndexer" type="UmbracoExamine.LuceneExamineIndexer, UmbracoExamine" runAsync="true" supportUnpublished="false" supportProtected="true" interval="10" analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net" indexSet="DemoIndexSet"/>
和用户控制代码是
public static class SearchResultExtensions { public static string FullUrl(this SearchResult sr) { return umbraco.library.NiceUrl(sr.Id); } } SearchTerm = Request.QueryString["s"]; if (string.IsNullOrEmpty(SearchTerm)) return; SearchResults = ExamineManager.Instance.SearchProviderCollection["DemoSearcher"].Search(SearchTerm,true).ToList(); SearchResultListing.DataSource = SearchResults; SearchResultListing.DataBind();如果要排除节点类型,只需将其放在IndexSet标记之间
<IndexSet ...> ... <ExcludeNodeTypes> <add Name="NameNodeType" /> </ExcludeNodeTypes> </IndexSet>
有关codeplex examine的更多信息