2016-04-29 5 views
0

コード内のすべての索引項目を取得したいと考えています。この時点で、私はコードとしてこれを持っていますKentico searchindexからすべての商品を取得する

string indexName = "indexname"; 
var index = SearchIndexInfoProvider.GetSearchIndexInfo(indexName); 

// returning 0 
var itemChildrenNumbers = index.Children.Count; 

// returning an empty CombinedInfoObjectCollection 
var itemChildren = index.Children.All; 

// returning the right amount of indexed items 
var numberOfIndexedItems = index.NumberOfIndexedItems; 

コード内のすべての索引項目を取得するにはどうすればよいですか。私はそのアイテムのリストを受け取りたい。

答えて

4
private DataSet SearchText(string searchQuery){ 
    // Get the search index 
    SearchIndexInfo index = SearchIndexInfoProvider.GetSearchIndexInfo(searchIndex); 
    DataSet results = new DataSet(); 

    if (index != null) 
    { 
     // Prepare parameters 
     SearchParameters parameters = new SearchParameters() 
     { 
      SearchFor = searchQuery, 
      Path = "/%", 
      ClassNames = "", 
      CurrentCulture = "EN-US", 
      DefaultCulture = CultureHelper.DefaultUICulture.IetfLanguageTag, 
      CombineWithDefaultCulture = false, 
      CheckPermissions = false, 
      SearchInAttachments = false, 
      User = (UserInfo) CMS.Membership.MembershipContext.AuthenticatedUser, 
      SearchIndexes = index.IndexName, 
      StartingPosition = 0, 
      DisplayResults = 5000, 
      NumberOfProcessedResults = 5000, 
      NumberOfResults = 5000, 
      AttachmentWhere = String.Empty, 
      AttachmentOrderBy = String.Empty, 
     }; 

     // Search returns resultset. 
     results = SearchHelper.Search(parameters); 
    } 
    return results; 
} 
+0

これは、Kenticoで結果を取得しようとしていることを前提としています。 –

2

私はあなたがすべてのインデックス化のアイテムを簡単にアクセスできるかはわかりません。これの目的は何ですか?

ただし、手動検索を実行してから結果を処理することができます。多分、これはあなたにとってさらに良いでしょう。

は、検索は、あなたがこのようなものを使用することができます実行するには:あなたがSearchPatametersで見ることができるよう

 var index = SearchIndexInfoProvider.GetSearchIndexInfo("indexName"); 

     if (index != null) 
     { 
      SearchParameters parameters = new SearchParameters() 
      { 

       SearchFor = "Something", 
       SearchSort = "##SCORE##", 
       Path = "/%", 
       ClassNames = "", 
       CurrentCulture = "EN-US", 
       DefaultCulture = CultureHelper.EnglishCulture.IetfLanguageTag, 
       CombineWithDefaultCulture = false, 
       CheckPermissions = false, 
       SearchInAttachments = false, 
       User = (UserInfo)MembershipContext.AuthenticatedUser, 
       SearchIndexes = index.IndexName, 
       StartingPosition = 0, 
       DisplayResults = 100, 
       NumberOfProcessedResults = 100, 
       NumberOfResults = 0, 
       AttachmentWhere = String.Empty, 
       AttachmentOrderBy = String.Empty, 
      }; 

      // Performs the search and saves the results into a DataSet 
      System.Data.DataSet results = SearchHelper.Search(parameters); 

      if (!DataHelper.DataSourceIsEmpty(results)) 
      { 
       foreach (DataRow searchItem in results.Tables[0].Rows) 
       { 
        // do whatever you need with the search item 
       } 
      } 
     } 

また、返される結果の数を絞り込むことができます。

関連する問題