加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 从umbraco搜索中排除节点

发布时间:2020-12-16 09:24:16 所属栏目:asp.Net 来源:网络整理
导读:我已经创建了umbraco搜索,其中我想要一些不应该被搜索的节点,所以我可以做的是我应该在搜索条件中定义或sholud我在检查配置文件的设置或索引设置代码中做一些事情 IndexSet SetName="DemoIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/DemoIndex/"In
我已经创建了umbraco搜索,其中我想要一些不应该被搜索的节点,所以我可以做的是我应该在搜索条件中定义或sholud我在检查配置文件的设置或索引设置代码中做一些事情

<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的更多信息

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读