2

umbraco で設計された Web サイトの検索機能に取り組んでいます。Examineを使用して検索結果を取得しています。これが私のコードです:

 var Searcher = ExamineManager.Instance.SearchProviderCollection["ExternalSearcher"];
            var searchCriteria = Searcher.CreateSearchCriteria(BooleanOperation.Or);
            var query = searchCriteria.Field("tags", searchTerm.Fuzzy(0.5f)).Compile();
            var searchResults = Searcher.Search(query);

この方法では、検索語が属するノードしか取得できませんが、プロパティから値全体を直接取得したいと考えています。

すべてのノードで同じプロパティからすべての値を取得する最速の方法を知りたいです。

4

2 に答える 2

2

私は最終的にプロパティから直接値を取得することができました.これは私が使用したコードです:

    List<string> nodesList = new List<string>();
    var Searcher = ExamineManager.Instance.SearchProviderCollection["ExternalSearcher"];
    var searchCriteria = Searcher.CreateSearchCriteria(BooleanOperation.Or);
    var query = searchCriteria.Field("tags", queryString.Fuzzy(0.5f)).Compile();
    var searchResults = Searcher.Search(query);
    foreach (var item in searchResults)
    {
        string paths = ((Examine.SearchResult)item).Fields["tags"];
        nodesList.Add(paths); 
    }

((Examine.SearchResult)item).Fields["tags"]を使用すると、プロパティ値が直接取得されます。

于 2014-02-11T06:01:29.523 に答える
0

検索をカスタマイズしたい場合は、/config/examineIndex.config ファイルで実際に検索したいプロパティを持つ新しいインデックス セットを定義する必要があります。

この投稿で非常によく説明されています。

于 2014-02-10T20:48:53.640 に答える