---
title: "拡張探索"
slug: "extend-search"
abstract: "検索ソリューションを拡張し、サイト、ファセット、範囲を追加しましょう。"
---
# 拡張探索

SXAには柔軟な検索ソリューションが付属しています。ユーザーが正確に探している商品を見つけやすくするために、検索範囲やファセットなどの高度な検索機能を追加できます。例えば、サイトの一般的な内容を検索する検索ページ、製品データベースを検索するページ、ブログアーカイブを検索するページを定義できます。

## 検索を拡張して他のサイトも含める

デフォルトでは、検索結果はサイトのホームアイテムに絞られます。検索範囲を拡大して他のサイトを含めることもできます。例えば、グローバルサイトが1つで、異なる国ごとに複数のサイトがある場合、グローバルサイトにいるときに検索範囲を拡大してすべてのサイトを含めることができます。

検索を他のサイトにも拡大するために:

-   /sitecore/content/Tenant/Site/Settingsに行き、**Search基準**セクションの**関連コンテンツ**欄で、検索に含めたいサイトをクリックしてください。このフィールドを空にすると、現在のサイトのみが検索されます。
    
    ![Add the sites that you want to include in the search.](https://doc.sitecore.com/api/markdown-image/xp/ja/users/sxa/93/sitecore-experience-accelerator/images/92A7DB08002145EEAED2A986548945BD.png)
    

## 検索範囲を拡大する

ページのコンテンツは自動的に検索可能になります。大規模なウェブサイトでは、検索結果のナビゲーション、フィルター、順番の適用を容易にできるため、訪問者は最小限の労力で必要なものを正確に見つけられます。SXAには検索条件の入力を処理し、結果を柔軟かつカスタマイズ可能な形で提示するための様々な検索レンダリングが含まれています。

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

検索範囲を追加するには:

1.  サイトの **設定** に移動し、「 **Scopes** 」を右クリックし、「 **挿入**」→「 **Scope**」をクリックします。
    
2.  名前を入力して**OK**をクリックします。
    
3.  スコープクエリを定義するために:
    
    -   クエリが用意できているなら、「 **クエリを貼り付け**」をクリックします。
        
        ![Navigate to site/settings and in the Scope section in the ScopeQuery field click Paste Query.](https://doc.sitecore.com/api/markdown-image/xp/ja/users/sxa/93/sitecore-experience-accelerator/images/84E64EDB85DF45B395910BA0E5BE91A1.png)
        
    -   クエリを作成するには **、「Build Query** 」をクリックし、検索欄の **「Build Search Query** 」ダイアログボックスで、使いたいキーワードと検索フィルターを入力します。
        
        ![In the Build Search Query dialog box, use keywords and search filters to build the search.](https://doc.sitecore.com/api/markdown-image/xp/ja/users/sxa/93/sitecore-experience-accelerator/images/E17EB9DB2237457097B741784046C5BE.png)
        
    -   あらかじめ定義されたSXAトークンを使用するには、「 **Build Search Query** 」ダイアログボックスの検索欄で「SXA」と入力し、「 **Enter** 」をクリックすると利用可能な検索トークンが表示されます:
        
        TaggedTheSameAsCurrentPage|SxaTags – 検索結果は現在のページと同じタグを持つ項目に限定します。
        
        TaggedWithAtLeastOneTagFromCurrentPage|SxaTags – 検索結果は少なくとも1つのページタグが割り当てられている項目に限定します。
        
        UnderCurrentPage – 検索結果は現在のページに限定されます。
        
        ExcludeCurrentPage – 現在のページを除外するよう検索結果を制限します。
        
        ItemsOfTheSameTemplateAsTheCurrentPage – 検索結果を現在のページと同じテンプレートを使用する項目に限定します。
        
        ItemsWithTheSameValueInField|FieldName – 検索結果を特定のフィールド内で同じ値を使用するアイテムに限定します。
        
4.  サイトの **設定** に移動し、**Search Criteria**セクションの **「Default Search Scope** 」フィールドでスコープを選択します。
    
    ![Select the search scope.](https://doc.sitecore.com/api/markdown-image/xp/ja/users/sxa/93/sitecore-experience-accelerator/images/SXA-scope-default.PNG)
    
    **Datasourceの検索範囲**フィールドでは、追加の場所を定義できます。例えば、テキスト項目を検索したい場合は<site>/Data/Textsを追加できます。
    

## 側面を含む検索を拡張

すべての検索レンダリングには設定項目があります。これらの項目はレンダリングテキストを保存するために使われますが、場合によってはファセットのようにさらに多くの構成も含まれます。ファセットとは、検索結果を整理する方法であり、検索結果を著者、言語、作成日などで分類して検索結果を整理する方法です。

ファセットはファセットフィルターで使われる特別な項目です。これらは検索エンジンに、結果を絞り込みたいフィールドを知らせるために使われます。例えば、サイトに異なる種類の車が掲載されている場合、タイプ、色、価格に基づく検索が可能です。

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

![Go to site/Settings/Facets to add facets.](https://doc.sitecore.com/api/markdown-image/xp/ja/users/sxa/93/sitecore-experience-accelerator/images/54AD6FB0BA2747529734423E87B416C5.png)

デフォルトでは、SXAはプラットフォームが定義した/sitecore/system/Settings/Buckets/Facets項目で定義されたファセットを使用します。

新しい検索ファセットを作成し、サイトに追加するには:

1.  サイト/設定/ファセットに移動し、追加したいファセットをクリックしてください。例えば、訪問者が日付を選択して検索を絞り込めるようにしたい場合、「日付ファセット」をクリックして以下の項目に入力してください:
    
    -   **名前** と **表示名:**名前を入力してください。
    -   **ファセットフィルター**:このフィールドは検索で使うファセット値を制限できます。 ISimpleFacet インターフェースを実装するクラスへの参照を入力できます。このクラスは自分で作成しなければならず、文字列を返す必要があります。このクラスにロジックを実装し、ファセットが検索すべきフィルターを決定できます。このクラスはフィルターの数を減らすことを目的としています。例えばDate RangeやFile Sizeのように、Sitecore検索ファセットの実装方法はこの方法です。
    -   **フィールド名**:ユーザーが検索できるようにしたいフィールドをカンマ区切りのリストで指定します。
    -   **有効**:デフォルトではこのチェックボックスが選択されています。ファセットが動作するためには、このチェックボックスを選択しなければなりません。
    -   **最小アイテム数**:ファセットが検索結果に表示される前に出現しなければならない最小アイテム数。
    -   **グローバルファセット**:すべてのサイト項目でバックエンド検索に使えるサイトファセットを望む場合は、trueに設定してください。
2.  site/Data/Searchに移動し、新しいファセットフィルターを作成します。例えば「 **Date Filter Folder**」をクリックし、名前(例えばMyOwnFilter)を入力し、「 **OK」**をクリックします。
    
3.  **ファセット**フィールドで、先ほど作成したファセットを選択してください。
    
    ![Navigate to the facet filter and select the facet.](https://doc.sitecore.com/api/markdown-image/xp/ja/users/sxa/93/sitecore-experience-accelerator/images/DC74DF3B59F04A7EAD83C8D526DA27BB.png)
    
4.  新しいファセットフィルターの動作を確認するには、エクスペリエンスエディターでページを開き、Search BoxとSearch Resultsのレンダリングをページに追加してください。Search Resultsレンダリングを追加した後、「 **関連コンテンツの選択** 」ダイアログボックスで作成したフィルターを選択し、**OK**をクリックします。
    
    ![Select the search filter.](https://doc.sitecore.com/api/markdown-image/xp/ja/users/sxa/93/sitecore-experience-accelerator/images/5C0AD3B6874641C8A126A46F8DF0507D.png)
    
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 – はインデックス作成時に値を取得する参照項目のフィールドを定義します。
    

## 検索をメディアライブラリの項目にも拡張

検索範囲を拡大してメディアライブラリフォルダも含めることができます。これは訪問者が画像や動画を探すことを期待する場合に便利です。例えば、説明動画を含むウェブサイトがある場合、訪問者が特定の動画で検索できるのは便利かもしれません。

検索を拡大してメディアライブラリのアイテムを含めるには:

-   サイトの **設定** に移動し、**Search Criteria**セクションの**AssociatedMedia**欄で、訪問者に検索してほしいメディアアイテムを追加してください。
    
    ![In the Associated Media field, add the media items that people can search on.](https://doc.sitecore.com/api/markdown-image/xp/ja/users/sxa/93/sitecore-experience-accelerator/images/8B989E3C24B24B648B5F0CCCEE5E4413.png)