2016-07-08 8 views
4

Ich habe 10 Artikel Inhaltselemente und jeder Artikel Artikel hat eine Beiträger PrüflisteSitecores Suche Facetten und Berechnete Felder

enter image description here

ich Mitwirkende Facet für Facettensuche im Editor erstellt haben. Checklistenwerte werden jedoch als String-IDs indiziert.

enter image description here

Jetzt auf Seite Suchergebnis der Facettenwerte als String-IDs erscheinen. Ich habe einen ComputedField indiziert die Anzeigenamen

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

und Konfigurationsdatei

<?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> 

erstellt, aber jetzt immer sowohl die IDs und Namen (vorkommende zweimal) enter image description here

+0

Haben Sie versucht, einen Breakpoint zu setzen oder 'Log.Info' zu Ihrem Code hinzuzufügen, um zu debuggen, was er zurückgibt? Sie müssen 'tagsFacet' nicht in den Abschnitten' AddComputedField' und 'AddFieldByFieldName' hinzufügen. 'AddComputedField' sollte ausreichen. Hast du auch nachgesehen, wie groß das Feld 'tagsFacet' in Luke ist? Ich sehe nur einen Screenshot von dem, was sich im Feld "Mitwirkende" befindet. –

Antwort

0

Sie ergreifen müssen, um ein Blick auf BucketConfiguration.ResolveFacetValueToFriendlyName in Sitecore.Buckets.config.

<!-- RESOLVE FACET VALUE TO FRIENDLY NAME 
If you are storing a field in the index that is being faceted on, it may be stored as an ID. This Setting when set to true, will try and resolve this to the friendly item name instead.    
USAGE: In an environment with huge amounts of items (e.g. 1 Million), this will not scale properly. --> 

<setting name="BucketConfiguration.ResolveFacetValueToFriendlyName" value="false"/> 

Patch diesen Wert auf True und es sollte funktionieren.

Auf diese Weise sollte Ihr ComputedField veraltet sein.

+0

Jetzt bin ich in der Lage, die Namen zu indizieren, aber es tritt zweimal sowohl IDs als auch Namen auf. – Gaurav

+0

Ich habe die berechnete Feldklasse bearbeitet. Bitte haben Sie eine Bewertung. – Gaurav

+0

Überprüfen Sie dies: http://techitpro.com/sitecore-faceting-list-and-link-fields/ Wenn Sie die Einstellung verwenden, die ich Ihnen gezeigt habe, brauchen Sie kein berechnetes Feld, um das zu tun, was Sie wollen. – Gatogordo

Verwandte Themen