インデックスのフォールバックとアイテムのフォールバックは独立して設定できる

samatsu 5/1/2018 1858 N/A Sitecore Programming

Sitecore 8.2 から 言語フォールバックの機能が導入されています。

この機能は、例えば、日本語のバージョンがない時に、代わりに自動的に英語のバージョンを取得できるようにする機能です。

同様の機能で、検索用のインデックスにも言語のフォールバック機能が用意されています。この機能を使うと、インデックス作成時に、日本語バージョンがないと、英語バージョンの内容を使用して、日本語の検索用のインデックスを作成してくれます。

検索インデクスのLanguage Fallback は、例えばライブサイトでSitecoreのインデックを検索するサイト内検索を実装しているときに、日本語がないページも検索することができるようにしたい場合などに役に立ちます。

shellやwebsite等で、サイトのフォールバックを有効にしたい場合は、例えば次のようなパッチファイルを記載します。以下の例では shellのサイト(コンテンツエディターなどSitecore UI)で言語フォールバックを有効化する設定です。

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <sites>
      <site name="shell">
        <patch:attribute name="enableItemLanguageFallback">true</patch:attribute>
      </site>
    </sites>
  </sitecore>
</configuration>

この設定とは独立して、検索用にインデックスの言語フォールバックを有効化できます。例えば sitecore_master_index でアイテムレベルの言語のフォールバックを有効化する場合は次の用にパッチを適用します。

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:role="http://www.sitecore.net/xmlconfig/role/" xmlns:search="http://www.sitecore.net/xmlconfig/search/">
  <sitecore role:require="Standalone or ContentDelivery or ContentManagement" search:require="solr">
    <contentSearch>
      <configuration>
        <indexes hint="list:AddIndex">
          <index id="sitecore_master_index">
            <enableItemLanguageFallback>
              <patch:delete />
            </enableItemLanguageFallback>
            <enableItemLanguageFallback>true</enableItemLanguageFallback>
          </index>
        </indexes>
      </configuration>
    </contentSearch>
  </sitecore>
</configuration>

このように、インデックスとアイテムのフォールバックは設定場所が異なるのでそれぞれ独立して設定できます。

もちろん、フォールバックできるようにするには、言語アイテムで、フォールバック言語を選択して、

フォールバックするテンプレートのスタンダードバリューの方で、フォールバックを有効化する必要があります。

フォールバックの設定や詳細についてはドキュメントサイトをご参照ください。

Language fallback
https://doc.sitecore.net/sitecore_experience_platform/setting_up_and_maintaining/language_fallback