2016-07-08 24 views
4

は、私は10個の記事のコンテンツアイテムを持っており、それぞれの記事の項目は、私は、エディタでのファセット検索のために寄与ファセットを作成しているサイトコアの検索ファセットと計算フィールド

enter image description here

チェックリスト貢献しています。しかし、チェックリストの値は文字列IDとして索引付けされます。検索結果ページで今すぐ

enter image description here

ファセット値は、文字列のidのとして表示されています。あなたが取る必要がある 私はインデックスにComputedFieldを作成した表示名

public class Contributors : IComputedIndexField 
{ 
    public object ComputeFieldValue(IIndexable indexable) 
    { 
     var item = indexable as SitecoreIndexableItem; 

     if (item == null || item.Item == null) return string.Empty; 

     StringBuilder ContributorsNameList = new StringBuilder(); 
     IIndexableDataField cField = indexable.GetFieldByName("Contributors"); 
     if (cField != null) 
     { 

      var cList = cField.Value.ToString().Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries).ToList(); 

      foreach (var cId in cList) 
      { 

       var cItem = item.Item.Database.GetItem(new ID(cId)); 

       if (cItem != null) 

        ContributorsNameList.Append(cItem.Name.ToString()); 

      } 

      return ContributorsNameList; 

     } 

     return null; 

    } 
    public string FieldName { get; set; } 
    public string ReturnType { get; set; } 
} 

と、configファイル

<?xml version="1.0" encoding="utf-8" ?> 
    <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/"> 
    <sitecore> 
     <contentSearch> 
     <configuration> 
      <defaultIndexConfiguration> 
      <fields hint="raw:AddComputedIndexField"> 
       <field fieldName="tagsfacet" storageType="yes" indexType="untokenized">          Sandbox.SitecoreCustomizations.ComputedIndexFields.TagsFacet, Sandbox</field> 
      </fields> 
      <fields hint="raw:AddFieldByFieldName"> 
       <field fieldName="tagsfacet" storageType="YES" indexType="TOKENIZED"               vectorType="NO" boost="1f" type="System.String"          settingType="Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, Sitecore.ContentSearch.LuceneProvider"> 
       <Analyzer type="Sitecore.ContentSearch.LuceneProvider.Analyzers.LowerCaseKeywordAnalyzer,     Sitecore.ContentSearch.LuceneProvider" /> 
       </field>   
      </fields> 
      </defaultIndexConfiguration> 
     </configuration> 
     </contentSearch> 
    </sitecore> 
    </configuration> 

が、取得の両方のidのと名前(2回発生) enter image description here

+0

戻り値をデバッグするためにブレークポイントを挿入するか、コードに 'Log.Info'を追加しようとしましたか? 'AddComputedField'セクションと' AddFieldByFieldName'セクションの両方に 'tagsFacet'を追加する必要はありません。 'AddComputedField'で十分でしょう。また、Lukeの 'tagsFacet'フィールドの値は何ですか?私は 'contributors'フィールドの中からスクリーンショットを見るだけです。 –

答えて

0

Sitecore.Buckets.configのBucketConfiguration.ResolveFacetValueToFriendlyName をご覧ください。

この値をtrueにすると正常に動作します。

このようにして、ComputedFieldは廃止されるはずです。

+0

名前を索引付けすることができましたが、IDと名前の両方に2度も発生しています。 – Gaurav

+0

計算フィールドクラスを編集しました。レビューをお願いします。 – Gaurav

+0

これを確認してください:http://techitpro.com/sitecore-faceting-list-and-link-fields/私が示した設定を使用するとき、あなたが望むことをするために計算フィールドは必要ありません。 – Gatogordo

関連する問題