Lucene 検索プロバイダーおよび名前にスペースが含まれるSitecoreフィールドの問題


説明

Lucene検索プロバイダーを使用して、名前に空白(スペース)が含まれるSitecore フィールドを処理する際に、次の問題が発生する場合があります。

  1. インデックス構成でフィールドのストレージ タイプが「YES」に設定されていても、フィールドの値がインデックスに格納されない場合があります。
  2. フィールドに関連付けられたアナライザーが、インデックス作成と検索の両方で無視される場合があります。代わりに、デフォルトのアナライザーが使用されます。

解決策

影響を受けるフィールドごとに、2つのエントリをインデックス構成に追加する必要があります。

  1. ストレージ タイプの問題を解決するには、次のエントリを追加します (以下は例です。フィールド名に空白を使用します)。
    <field fieldName="{my field name}" 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>
  2. アナライザーの問題を解決するには、次のエントリを追加します(以下は例です。フィールド名の空白をアンダースコアに置き換えます)。
    <field fieldName="{my_field_name}" 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>

変更を有効にするには、検索インデックスを再構築する必要があります。