以前の記事では、主に全文検索に関連する問題を扱いました。 今回は、Apache Solrを使用してDrupalで検索するためのファセットフィルターについて説明します。 以前の資料を読んでいない人には、トピックをよく理解するためにそれらを読むことをお勧めします。 注意、カットの下にたくさんの写真。
- Apache Solrパート1でのDrupal 7検索-基本設定
- Apache SolrでのDrupal 7 Searchパート2-インデックスの調整方法の学習
- Apache SolrでDrupal 7を検索するパート3-カスタムフィールドとオプションをインデックスに追加する方法を学ぶ
- Apache Solrパート4-ファセットフィルターでDrupal 7を検索する
- Apache SolrによるDrupal 7の検索パート5-ファセットフィルターウィジェット
- Apache Solrパート6を使用してDrupal 7で検索する-Apache Solr + Tomcatを構成する
- Apache SolrによるDrupal 7検索パート7-ロシア語の全文検索
ファセットが必要な理由とその理由。 ファセットは、特定のフィールドによるフィルターです。 このフィルターは修飾子として機能します。
小さな例を考えてみましょう。 あなたは車の本質を持ち、それは色とメーカーによって特徴付けられます。 最初は、フィルターで複数の色を選択できます。
ただし、メーカーの会社を選択すると、選択範囲をフィルタリングし、選択したメーカーに対応する色のみが使用可能になります。
もう一度ルノーを押すと、フィルターは元の状態に戻ります。
このような機能は、さまざまな情報データベースおよびカタログでの検索に広く使用されています。
それでは、Apache Solrを介して、Drupalで検索するためのファセットを構成する方法を見てみましょう。 過去のレッスンでは、必要なモジュールを既にインストールし、Apache Solrサーバーを構成しました。
次に、サイトを構成するためにさらにいくつかの手順を実行する必要があります。
1.最初に、 facetapiモジュールとSearch facets(facetapiに含まれる)をインストールする必要があります。
2.次に、新しいAuto Tipeコンテンツを作成し、そこに色とメーカーの会社のフィールドを追加します。
3.また、autoタイプのノードにインデックスを付けるように、インデックス設定を変更する必要があります。 これを行うには、インデックス設定で、ワークフロータブに移動し、バンドルフィルターを構成します。
4.次に、[フィールド]タブに移動し、インデックスに色とブランドのフィールドを含めます。
そのため、autoタイプのノードを検索するインデックスを設定します。 ファセットに直接行きましょう。 必要なモジュールを既に有効にしてキャッシュをクリアしている場合(これはDrupalで最も重要なことです)、インデックス設定に新しい[ファセット]タブが必要です。 このタブでは、インデックスに追加されたフィールドのファセットフィルターを有効にできます。 各ファセットの設定を指定できますが、それらについては少し後で指定できます。 とりあえず、ファセットをオンにして、タイプautoでノードにインデックスを付けてください。
次に、出力を構成する必要があります。 ファセットフィルターごとに、通常のブロックが作成され、領域やパネルなどを使用して、好きなように表示できます。 ファセットには、レンダリングするための1つのニュアンスがあります。ApacheSolrで要求が行われるビューはすでに機能しているはずです。 簡単に言えば、最初に結果を含むビューをページに配置し、ファセットブロックのレベルを低くする必要があります(それぞれレンダリングの後半)。 領域にファセットブロックを配置した後、そのようなページを取得しました
次に、ファセット設定について説明します。 スクリーンショットでは、設定フォームを見ることができます
それらの最も重要なものを考慮してください。
- ウィジェットの表示-ファセットのウィジェットを選択できます。 デフォルトでは、ウィジェットはリンクとチェックボックスの形式で利用できます。 追加のウィジェットがいくつかありますが、それらについては次の記事で説明します。 その中で、独自のウィジェットの書き方を学びます。
- 並べ替え-ファセットブロックの値を表示するときに並べ替える基準を決定します。
- 演算子はANDまたはORです。 ANDの場合は、各ファセットで1つの値のみを選択でき、ORの場合は複数の値を選択できます。
- 検索用ディスプレイ-ファセットがトリガーするディスプレイを指定できます。 これは、1ページに検索結果を表示する複数のディスプレイがあり、そのうちの1つだけをフィルタリングする場合に便利です。
わかりやすくするために、ファセットフィルターの操作例を使用してビデオを録画しました