【问题标题】:exclude node from umbraco search从 umbraco 搜索中排除节点
【发布时间】:2020-03-17 04:03:58
【问题描述】:

我已经创建了 umbraco 搜索,其中我想要一些不应该被搜索的节点,所以我可以做的是我应该在搜索条件中定义一些东西,或者我应该在检查设置或配置文件的索引设置代码中做一些事情

 <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();

【问题讨论】:

    标签: asp.net umbraco


    【解决方案1】:

    如果你想排除一个节点类型,只需将它放在 IndexSet 标记之间

    <IndexSet ...>
      ...
      <ExcludeNodeTypes>
        <add Name="NameNodeType" />
      </ExcludeNodeTypes>
    </IndexSet> 
    

    更多信息codeplex examine

    【讨论】:

      【解决方案2】:

      在您的 DocumentType 中添加一个 true/false 类型的字段“includeInSearchIndex”。 然后在您的检查索引配置中添加此字段

      <IndexUserFields>
        <add Name="includeInSearchIndex"/>
      </IndexUserFields>
      

      然后使用创建自定义查询来搜索未选中此字段的所有内容。

      var Searcher = ExamineManager.Instance.SearchProviderCollection["WebsiteSearcher"];            
      var query = searchCriteria.Field("includeInSearchIndex", "0").
          Or().Field("includeInSearchIndex", "").Compile();
      var searchResults = Searcher.Search(query);
      

      查看this page 了解有关检查索引和搜索查询的更多信息

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-04-11
        • 1970-01-01
        • 1970-01-01
        • 2012-03-26
        相关资源
        最近更新 更多