1. SXA Search

SXAインデックス作成を構成する

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

SXAでは、特定の言語またはサイトごとにインデックスを定義できます。これは、インデックスを小さく保ち、パフォーマンスを向上させるためにデータを分離する場合に便利です。

インデックスを追加する

インデックスを追加するには:

  1. /sitecore/content/Tenant/Site/Settings/Site Grouping/Siteに移動します。

  2. Indexingセクションでは、サイトのインデックス仕様を入力できます。常にデータベースから開始し、その後にスラッシュを付けます。その後、言語を指定するか、* を使用してすべての言語を含めることができます。

    たとえば、サイト固有のインデックスを作成したり、英語とスペイン語を分けたりすることができます。

    Index specification on language.
    メモ

    SXA検索インデックスを1つの特定の言語のアイテムを含めるように設定する場合は、クローラの言語パラメーターを追加する必要があります。

    <locations hint="list:AddCrawler">
        <crawler type="Sitecore.XA.Foundation.Search.Crawlers.SxaItemCrawler, Sitecore.XA.Foundation.Search">
            <Database>master</Database>
            <Root>/sitecore</Root>
            <Language>en</Language>
        </crawler>
    </locations>
  3. 検索プロバイダーの設定ファイルに移動して、作成したインデックスを追加します。たとえば、Solrを使用する場合は、C:\inetpub\wwwroot\Site\Website\App_Config\Include\Z.Foundation.Overrides\Sitecore.XA.Foundation.Search.Solrに移動してインデックスを追加します。

デフォルトのクローラパスは <Root>/sitecore</Root>です。カスタムインデックスのアイテムクローラパスをデフォルトのパスとは異なるパス(例: <Root>/sitecore/content/TenantA/SiteA/Home/NewFolder</Root>)を使用するように設定すると、次の影響があります。

  • そのパスの項目のみがインデックス化されます。

  • カスタムインデックスにはテンプレートは含まれません。

インデックスにテンプレートがないと、フィールド タイプの解決ロジックに影響を与える可能性があります。場合によっては、フィールド タイプが見つからないことがあり、その結果、結果の検索またはフィルタリング中に問題が発生する可能性があります。これを解決するには、設定ファイル内のすべてのカスタム フィールドを手動で定義して、Sitecoreがどのタイプ (文字列、整数、テキストなど) を使用しているかを認識できるようにする必要があります。

手記

Sitecoreインデックス作成の一般的な情報については、プラットフォームのドキュメントを参照してください。

カスタムインデックスを構成する

SXA固有のフィールドは、すべてのインデックスに自動的に含まれるわけではありません。カスタム インデックスを使用しながらSXA検索機能を使用する場合は、SXA固有のフィールドを含めるようにカスタム インデックスを設定する必要があります。

SXA固有のフィールドをインデックスに追加するには、次の手順を実行します。

  1. インデックス設定で、カスタムインデックスを定義するindexノードを見つけます。

  2. documentOptionsノード内に、次のコードを追加します。

    <fields hint="raw:AddComputedIndexField">
    	<field fieldName="site">
    	    <patch:delete /></field>
    	<field fieldName="site" returnType="stringCollection">Sitecore.XA.Foundation.Search.ComputedFields.Site, Sitecore.XA.Foundation.Search</field> 
    	<field fieldName="sxacontent" returnType="textCollection" type="Sitecore.XA.Foundation.Search.ComputedFields.AggregatedContent, Sitecore.XA.Foundation.Search"> 
    		<mediaIndexing ref="contentSearch/indexConfigurations/defaultSolrIndexConfiguration/mediaIndexing"/> 
    	</field> 
    	<field fieldName="haslayout" returnType="bool">Sitecore.XA.Foundation.Search.ComputedFields.HasLayout, Sitecore.XA.Foundation.Search</field> 
    	<field fieldName="searchable">Sitecore.XA.Foundation.Search.ComputedFields.Searchable, Sitecore.XA.Foundation.Search</field> 
    	<field fieldName="parentname" returnType="string">Sitecore.XA.Foundation.Search.ComputedFields.ParentName, Sitecore.XA.Foundation.Search</field> 
    	<field fieldName="level" returnType="int">Sitecore.XA.Foundation.Search.ComputedFields.Level, Sitecore.XA.Foundation.Search</field> 
    	<field fieldName="parenttemplate" returnType="string">Sitecore.XA.Foundation.Search.ComputedFields.ParentTemplate, Sitecore.XA.Foundation.Search</field> 
    	<field fieldName="inheritance" returnType="stringCollection" type="Sitecore.XA.Foundation.Search.ComputedFields.Inheritance, Sitecore.XA.Foundation.Search"/> 
    </fields>
  3. 変更を保存し、インデックスを再構築します。

この記事を改善するための提案がある場合は、 お知らせください!