Drupal 8(および9)のファセット検索を構成する方法–簡単なステップバイステップのチュートリアル
公開: 2020-11-18ファセット検索は、検索結果に対してフィルターを表示することにより、ユーザーに優れた検索エクスペリエンスを提供します。 これは、大きなカタログやリストがあるWebサイトで特に役立ちます。 ユーザーが検索クエリを入力すると、検索をさらに絞り込むための関連するフィルターオプションのリストが表示されます。 これらのフィルタリング要素はファセットです。
以前はDrupal7のFacetAPIでしたが、Drupal 8のFacetモジュールを使用すると、ファセット検索機能を使用してWebサイトを利用できます。 ファセットはDrupal9もサポートしています! Drupal独自の検索サーバーであるSearchAPIを使用したファセット検索の構成と実装を見てみましょう。

ファセット検索とは何ですか?
ユーザーが検索クエリを入力した後でも、何を検索しているのかわからない場合は、イライラすることになります。 ファセット検索は、コンテンツのさまざまな属性に対して同時に複数のフィルターをユーザーに提供します。 提供されるファセットは、ユーザーが実行した検索クエリに基づいています。 ファセットの横には、一致した結果の数(通常は角かっこ内)も表示されます。 ファセットをよりよく理解するために、以下のスクリーンショットを見てみましょう-

最近のDrupal8プロジェクトの1つで、このWebサイトでコロンビアの住宅をすばやく検索すると、コミュニティ、ホットディール、クイックムーブインなどのファセットが表示されます。 また、各ファセットの横に結果の数が表示されます。 そのため、「Columbia」キーワードを含むクエリが検索サーバーに送信され、構成済みでインデックス付けされたカテゴリ(コミュニティ、ホットディールなど)が取得されます。
Drupal8用のファセットモジュールのインストール
前に説明したように、DrupalのSearchAPIモジュールを使用してファセット検索を実装します。
ステップ1:モジュールを有効にする
これらのモジュールをインストールして有効にします
•ファセットモジュール
•検索APIモジュール
ステップ2:コンテンツタイプを作成する
以下に示すようにコンテンツタイプを追加して、ファセット検索に含めるコンテンツを作成します。 Drupalが提供するデフォルトのコンテンツタイプを使用することもできます。

手順3:検索サーバーを構成する
管理インターフェースから「構成」->「検索とメタデータ」->「検索-API」にナビゲートして、検索サーバーを構成します。 検索サーバー(ここでは-データサーバー)に名前を付けます。

ステップ4:検索インデックスを構成する
次に、検索パフォーマンスを向上させるために検索インデックスを構成します。 [構成]-> [検索とメタデータ]-> [検索]-[API]-> [インデックス]-> [data_index]に移動します。

ステップ4:検索インデックスを構成する
ここでコンテンツエンティティのインデックスを作成するため、インデックスに名前を付けてから、データソースとして[コンテンツ]を選択します。
次に、次のセクション-データソースの構成(ここでは-コンテンツ)に進むことができます。 ここでは、すべてのバンドルを選択するか、以下のリストからいくつかを選択してインデックスを作成するかを選択できます。
次に、作成済みのサーバー(ここではデータサーバー)を選択します。 「すぐにアイテムにインデックスを付ける」オプションを選択して、インデックス作成プロセスを開始します。 [保存]をクリックします。

データソースの構成
ステップ5:インデックス作成用のフィールドを追加する
次に、インデックスを作成するフィールドを追加する必要があります。 [構成]-> [検索とメタデータ]-> [検索API]-> [データインデックス]に移動し、[フィールド]タブを選択します。 [フィールドの追加]ボタンをクリックして、要件に応じてフィールドを作成します。

ステップ5:インデックス作成用のフィールドを追加する
ステップ6:コンテンツのインデックス作成
同じ場所で、[表示]タブをクリックして、コンテンツのインデックス作成プロセスを開始します。 スタートインデックス今のセクションでは、インデックスNow]ボタンをクリックしてください。 次に、インデックスに登録されたアイテムの数のステータスを示す進行状況バーが表示されます。


ステップ6:コンテンツにインデックスを付ける
ステップ7:ビューを作成する
次に、インデックスを作成してユーザーに表示する必要があるデータのビューを作成します。 [構造]-> [ビュー]-> [ビューの追加]に移動します。

ステップ7:ビューを作成する
ビューに名前を付けます。
[表示設定]ドロップダウンリストで、手順4で作成したインデックスを選択します。
[ページ設定]タブの[ページを作成]チェックボックスをクリックして、検索結果のページを作成します。 名前と同じパスを指定します。
すべての結果を1ページに表示する場合は、[表示するアイテム]で[0]を選択します。 それ以外の場合は、表示する結果の数を選択します。
[ページ表示設定]で、結果を表示する形式(テーブル、グリッド、HTMLリスト、またはフォーマットされていないリスト)を選択できます。 ここでは、フォーマットされていないリストを選択しました。 [保存]をクリックします。
ステップ8:ビューにフィールドを追加する
ここでは、以前にインデックスを作成したフィールドをビューに追加します。
[ビュー]に移動し、[フィールド]セクションの横にある[追加]ボタンをクリックします。 [フィールド]を選択し、[追加と構成]をクリックします。
[レンダリング設定]で、[コンテンツへのリンク]チェックボックスを選択して、表示される結果をクリックできるようにします。
[保存]をクリックします。

ステップ8:ビューにフィールドを追加する
ステップ9:ファセットの構成
それでは、ファセットの構成と有効化を始めましょう。 [構成]-> [検索とメタデータ]-> [ファセット]に移動します
[ファセットの追加]ボタンをクリックします。

ステップ9:ファセットの構成
ファセットソースの選択–これは以前に作成したビューになります。
フィールドの選択–これにより、ステップ5でインデックス作成のために追加したフィールドが表示されます。
ファセットに名前を付けます。
[保存]をクリックします。
次に、ファセットを表示するためのその他の構成オプションが表示されます(下の画像を参照)。 ウィジェットには、リンクのリスト、配列、ドロップダウンなどのいくつかのオプションが一覧表示されます。Webサイトに最適なものを選択できます。
コンテンツタイプのマシン名が表示されないようにするには、「エンティティIDをラベルに変換する」を選択します。
[保存]をクリックします。

ステップ10:選択したページ領域にファセットブロックを配置する
次に、ブロックとして作成したファセットを選択したページ領域に配置します。
[構造]-> [ブロックレイアウト]に移動します。
ファセットを含むブロックを配置するページの領域を選択します。
ここでは、サイドバーを選択しています。 サイドバーの横にある[ブロックを配置]ボタンをクリックします。
次のダイアログボックスで、ファセット名を検索し、[ブロックを配置]をクリックします。

ステップ10:選択したページ領域にファセットブロックを配置する
[ブロックの構成]セクションで、以前に作成した検索ページのパスについて説明します。 ここで-「 site-search 」は私たちが作成したページです。
ブロックの表示名を指定し、ブロック名を表示する場合は[タイトルの表示]チェックボックスを選択します(ここでは–タイプ)。
[ブロックの保存]をクリックします。
結果
そして、まさにそのように、ファセット検索ページと機能の準備が整いました! フィルタリングするコンテンツタイプとして基本ページと記事がリストされているタイプ(表示名)と呼ばれるファセットに注目してください。

結果:ファセット検索ページ
