拡張検索

概要

サイト、ファセット、スコープを追加して、検索ソリューションを拡張します。

SXA は柔軟な検索ソリューションを付属しています。ユーザーが探しているアイテムを正確に見つけられるように、検索スコープやファセットなどの高度な検索機能を追加できます。たとえば、サイトの一般的なコンテンツを検索する 1 つの検索ページ、製品データベースを検索する別のページ、ブログ アーカイブを検索する別のページを定義できます。

既定では、検索結果はサイトのホーム アイテムに絞り込まれます。検索スコープを広げて、他のサイトを含めることができます。たとえば、1 つのグローバル サイトとさまざまな国に複数のサイトがある場合、グローバル サイトを表示しているときに、検索を拡張してすべてのサイトを含めることができます。

検索を拡張して他のサイトを含めるには、次の手順に従います。

  • /sitecore/content/Tenant/Site/Settings に進み、[検索条件] セクションの [関連コンテンツ] フィールドで、検索に含めるサイトをクリックします。このフィールドを空白のままにすると、現在のサイトのみが検索されます。

    検索に含めるサイトを追加します。

ページのコンテンツは、自動的に検索できるようになります。大規模な Web サイトでは、検索結果のナビゲート、フィルター処理、および順序付けの適用が簡単になるため、訪問者は最小限の労力で必要なものを正確に見つけることができます。SXA は、検索条件の入力を処理し、柔軟でカスタマイズ可能な方法で結果を表示するためのさまざまな検索レンダリングを備えています。

訪問者用のスコープを作成することもできます。たとえば、旅行の Web サイトがあり、訪問者が週末の旅行、1 週間の旅行、2 週間の旅行、または長期滞在を検索したいと考えている場合、サイトにフィルターとして表示されるスコープを作成できます。

検索スコープを追加するには、次の手順に従います。

  1. サイトの [設定] にナビゲートし、[スコープ] をクリックして [挿入]、[スコープ] の順にクリックします。

  2. 名前を入力して、[OK] をクリックします。

  3. スコープ クエリを定義するには、次の手順に従います。

    • クエリの準備ができている場合は、[クエリを貼り付け] をクリックします。

      site/settings にナビゲートし、[スコープ クエリ] フィールドの [スコープ] セクションで [クエリを貼り付け] をクリックします。
    • クエリを作成するには、[クエリを作成する] をクリックし、[検索クエリを作成する] ダイアログ ボックスの検索フィールドに、使用する検索キーワードと検索フィルターを入力します。

      [検索クエリを作成する] ダイアログ ボックスで、キーワードと検索フィルターを使用して検索を作成します。
    • 定義済みの SXA トークンの 1 つを使用するには、[検索クエリを作成する] ダイアログ ボックスの検索フィールドに、「SXA」と入力し、Enter キーを押します。次のような利用可能な検索トークンが表示されます。

      TaggedTheSameAsCurrentPage|SxaTags – 検索結果を現在のページと同じタグを持つアイテムに制限します。

      TaggedWithAtLeastOneTagFromCurrentPage|SxaTags – 少なくとも 1 つのページ タグが割り当てられているアイテムに検索結果を制限します。

      UnderCurrentPage - 検索結果を現在のページに制限します。

      ExcludeCurrentPage - 検索結果を制限して現在のページを除外します。

      ItemsOfTheSameTemplateAsTheCurrentPage – 現在のページと同じテンプレートを使用しているアイテムに検索結果を制限します。

      ItemsWithTheSameValueInField|FieldName – 特定のフィールドで同じ値を使用しているアイテムに検索結果を制限します。

      CurrentLanguage - 現在選択されている言語のアイテムに検索結果を制限します。

  4. サイトの [設定] にナビゲートし、[検索条件] セクションの [既定の検索スコープ] フィールドでスコープを選択します。

    検索スコープを選択します。

    [データ ソース検索スコープ] フィールドで追加の場所を定義できます。たとえば、テキスト アイテムを検索する場合は <site>/Data/Texts を追加します。

すべての検索レンダリングには設定アイテムがあります。これらのアイテムはレンダリング テキストを格納するために使用されますが、ファセットなど、より多くの設定が含まれることもあります。ファセットは、作成者、言語、作成日など、検索によって返されるアイテムを分類することで、検索結果を絞り込む方法です。

ファセットは、ファセット フィルターで使用される特別なアイテムです。これらは、結果をフィルター処理するフィールドを検索エンジンに通知するために使用されます。たとえば、サイトにさまざまな種類の車が掲載されている場合、タイプ、色、価格に基づいて検索できます。

サイト設定にファセットを追加できます。ファセットは site/Settings/Facets に格納されます。

site/Settings/Facets に移動して、ファセットを追加します。

既定では、SXA は/sitecore/system/Settings/Buckets/Facets アイテムでプラットフォームにより定義されているファセットを使用します。

新しい検索ファセットを作成してサイトに追加するには、次の手順に従います。

  1. site/Settings/Facets にナビゲートし、追加するファセットをクリックします。たとえば、サイトの訪問者が日付を選択して検索を絞り込めるようにするには、日付ファセットをクリックして、次のフィールドに入力します。

    • [名前] と [表示名]: 名前を入力します。

    • [ファセット フィルター]: このフィールドを使用すると、検索で使用するファセット値を制限できます。ISimpleFacet インターフェースを実装するクラスへの参照を入力できます。このクラスは自分で作成する必要があり、文字列を返す必要があります。ファセットが検索するフィルターを決定するロジックをこのクラスに実装できます。このクラスの意図は、フィルターの数を減らすことです。これが Sitecore 検索ファセットの一部 (日付範囲やファイル サイズなど) の実装方法です。

    • [フィールド名]: ユーザーがコンマ区切りのリストで検索できるようにするフィールドを指定します。

    • [有効]: 既定では、このチェックボックスはオンになっています。ファセットが機能するには、これをオンにする必要があります。

    • [最小アイテム数]: 検索結果に表示される前にファセットが表示される必要があるアイテムの最小数。

    • [グローバル ファセット]: すべてのサイト アイテムでサイト ファセットをバックエンド検索に使用できるようにする場合は、true に設定します。

  2. site/Data/Search にナビゲートし、新しいファセット フィルターを作成します。たとえば、[日付フィルター フォルダー] をクリックし、MyOwnFilter などの名前を入力して [OK] をクリックします。

  3. [ファセット] フィールドで、以前作成したファセットを選択します。

    ファセット フィルターにナビゲートし、ファセットを選択します。
  4. 新しいファセット フィルターがサイトでどのように機能するかを確認するには、エクスペリエンス エディターでページを開き、検索ボックス レンダリングと検索結果レンダリングをページに追加します。検索結果レンダリングを追加した後、[関連付けられたコンテンツを選択してください。] ダイアログ ボックスで、作成したフィルターを選択し、[OK] をクリックします。

    検索フィルターを選択します。
  5. ページを保存します。ページを [プレビュー] モードで表示すると、検索結果をフィルター処理できることがわかります。

    注記

    同じページに 2 つのフィルターがある場合、最初のフィルターのファセットを適用した後、2 番目のフィルターのファセットがそれに応じて更新されます。

ファセットは、ファセット フィルターで使用される特別なアイテムです。これらは、結果をフィルター処理するフィールドを検索エンジンに通知するために使用されます。SXA では、リンク フィールドをファセットとして使用することもできます。たとえば、サイトにリンク参照が含まれていて、それらを検索に表示したい場合が挙げられます。

既定では、リンク タイプ ファセットはターゲット アイテム ID を使用します。アイテム ID はフロントエンドでの使用にはあまり役に立たないため、検索設定ファイルに定義を追加して、GUID 値を参照アイテムのフィールド値に置き換えることができます。

リンク タイプ フィールドをファセットするには、次の手順に従います。

  • 次の定義を検索設定ファイルに追加します。

    <field fieldName="mytopics"
    returnType=”stringCollection” type="Sitecore.XA.Foundation.Search.ComputedFields.ResolvedLinks,
    Sitecore.XA.Foundation.Search" referenceField="topics"
    contentField="title"/>

    ここで、

    fieldName – 値が格納されるインデックス フィールド名を定義します。この名前が参照フィールド名と異なることを確認してください。

    returntype – 計算フィールドの戻り値の型を定義します。

    referenceField – インデックス付きアイテムのフィールド名を定義します。上の例のように、値は小文字である必要があります。

    contentField – インデックス作成中に値が取得される参照アイテムのフィールドを定義します。上の例のように、値は小文字である必要があります。

検索を拡張して、メディア ライブラリ フォルダーを含めることができます。これは、訪問者が画像やビデオを探す場合に便利です。たとえば、説明ビデオを含む Web サイトがある場合、訪問者が特にビデオを検索できると便利な場合があります。

検索を拡張してメディア ライブラリ アイテムを含めるには、次の手順に従います。

  • サイトの [設定] にナビゲートし、[検索条件] セクションの [関連メディア] フィールドに、訪問者が検索できるメディア アイテムを追加します。

    [関連メディア] フィールドに、訪問者が検索できるメディア アイテムを追加します。