3

Sitecore 8.1에 기본 lucene. guid 대신 다중 값 필드의 실제 값을 저장하기 위해 계산 된 필드가있는 사용자 지정 인덱스를 사용하고 있습니다. 이것이 작동하고 루크 도구 내에서 필드가 텍스트로 인덱싱 된 것을 볼 수 있습니다.Sitecore 계산 된 인덱스 필드 - untokenized를 저장하는 방법

일부 값에는 공백이 있지만 일부는 전체 필드로 색인화되기를 원합니다. 문제는 이것들이 토큰 화 된 방식으로 색인이 생성된다는 것입니다. 예를 들어 'Little Hampton'은 'Little'과 'Hampton'으로 색인이 생성됩니다.

계산 된 필드를 untokenized로 저장하려면 어떻게합니까? AddComputedIndexField 섹션 :

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

내가 storageType = "NO"는 indexType = 분야에 "UNTOKENIZED"하지만없는 영향이 tozenized 저장 유지를 추가 해봤 원시를 참조하십시오.

답변

1

계산 된 필드를 계산 된 필드에 일반 <fieldNames hint="raw:AddFieldByFieldName"> 섹션 IN ADDITION에 추가하고 분석기를 지정하십시오. 당신이 대체 검색

과 함께 제목 필드에 공백을 대체하는 계산 필드 만들기 "_": 내가 당신을 위해 한 가지 제안 할 수 있으며 작동합니다

<fieldNames hint="raw:AddFieldByFieldName"> 
    <field fieldName="my multilist field" 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> 
</fieldNames> 
+0

계산 된 필드를 사용하는 목적은 guid를 저장하지 않고 대신 텍스트를 저장하는 것입니다. 제안을 사용하면 지침을 다시 저장하게됩니다. –

+1

시도해 보셨습니까? 계산 된 필드와 함께 사용자가 의도 한대로 값을 저장해야합니다. –

+0

나는 그것을 시도하지 않았다 - 나는 당신이 그 대신에, 설정에 추가하는 것이 아니라고 제안한다고 생각했다. 좋아, 나는 그것을 시도하고, 그것은 일했다 :) 그러나 나는 혼란 스럽다 - 여기에 무슨 일 이냐? –

-1

: 예를 들어

검색 키워드에 "_"이있는 공백이 있으면 다음과 같이 표시됩니다. Little_Hampton