3

検索すべきではないノードが必要な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();
4

2 に答える 2

4

ノード タイプを除外する場合は、これを IndexSet タグの間に挿入します。

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

コードプレックスの詳細については、調べる

于 2013-03-18T13:06:29.920 に答える
3

DocumentType に、true/false タイプのフィールド「includeInSearchIndex」を追加します。次に、このフィールドを Examine インデックス構成に追加します

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

Examineインデックスと検索クエリの詳細については、このページをご覧ください。

于 2013-02-16T16:53:32.543 に答える