Sitecore 8.1 mit Standard-Lucene. Ich verwende einen benutzerdefinierten Index mit einem berechneten Feld, um die wahren Werte eines Multilist-Felds statt der GUIDs zu speichern. Das funktioniert und ich kann im Luke-Tool sehen, dass das Feld als Text indiziert ist.Sitecore berechnete Indexfelder - wie unktokontiert gespeichert wird
Einige der Werte enthalten Leerzeichen, aber ich möchte, dass diese als das gesamte Feld indiziert werden. Das Problem besteht darin, dass diese in Token-Form indexiert werden, so wird zum Beispiel "Little Hampton" als "Little" und "Hampton" indexiert.
Wie erhalte ich berechnete Felder, die nicht gespeichert werden sollen? Siehe die raw: AddComputedIndexField Abschnitt:
<indexConfigurations>
<myCustomIndexConfiguration type="Sitecore.ContentSearch.LuceneProvider.LuceneIndexConfiguration, Sitecore.ContentSearch.LuceneProvider">
<indexAllFields>true</indexAllFields>
<initializeOnAdd>true</initializeOnAdd>
<analyzer ref="contentSearch/indexConfigurations/defaultLuceneIndexConfiguration/analyzer" />
<fieldMap type="Sitecore.ContentSearch.FieldMap, Sitecore.ContentSearch">
<fieldNames hint="raw:AddFieldByFieldName">
<!-- you must have _uniqueid or you wont be able to update the document later -->
<field fieldName="_uniqueid" 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>
<field fieldName="title" storageType="YES" indexType="UNTOKENIZED" vectorType="YES" boost="1f" type="System.String" settingType="Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, Sitecore.ContentSearch.LuceneProvider" />
<field fieldName="summary" storageType="NO" indexType="TOKENIZED" vectorType="YES" boost="1f" type="System.String" settingType="Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, Sitecore.ContentSearch.LuceneProvider" />
</fieldNames>
</fieldMap>
<fields hint="raw:AddComputedIndexField">
<!-- resolves selected guids to text values -->
<field storageType="NO" indexType="UNTOKENIZED" fieldName="my multilist field">My.CoolStuff.Class, My.CoolStuff</field>
</fields>
Ich habe versucht, indem storage = „NO“ Indextype = „ungeteilte“ auf das Spielfeld, aber ohne Einfluss auf, es bleibt tozenized und gespeichert.
Der Zweck der Verwendung eines berechneten Feldes besteht darin, die Speicherung der Guids zu vermeiden und stattdessen Text zu speichern. Wenn Sie Ihren Vorschlag verwenden, werden die Guids erneut gespeichert. –
Hast du es versucht? In Kombination mit dem berechneten Feld sollten die Werte wie gewünscht gespeichert werden. –
Ich hatte es nicht ausprobiert - ich dachte, Sie schlagen das vor, statt, anstatt die Konfiguration hinzuzufügen. Ok ich habe es versucht, und es hat funktioniert :) aber ich bin verwirrt - was ist hier los? –