web-dev-qa-db-ja.com

Search APIとビューを統合しますか?

今日私は、ビュー内の通常の公開フィルターだけでなく、Search APIを使用してみることにしました。ただし、Search APIビューモジュールを有効にしても、インデックスがフィルターとしてビューに公開されていないようです。 Search APIとビューの統合に関するドキュメントは比較的存在しないため、ヘルプを参照することはできません。実際、統合モジュールのドキュメントには、「ほとんどの機能はビューのユーザーにとって明確である必要がある」と記載されています。どうやらそうではない。任意の助けいただければ幸いです。

7
Mrweiner

最初にサーバーに接続してから、インデックスを作成する必要があります。したがって、「ビューの追加」をクリックするときは、作成したコンテンツ、分類法、ユーザー、またはインデックスなど、ビューの種類を選択する必要があります。この時点で、検索APIインデックスからのフィールドとフィルターがあります(インデックスを作成するフィールドを選択する必要があります)。あなたはsolrサーバーを持っていますか、それともAPIを検索するために「単純な」mysqlサーバーを追加したいですか?

3
arrubiu

どこにもはっきりと記載されていないように見える重要なポイント:

  • 作成した各Search API検索インデックスは、最初に新しいビューを作成するときに、上部の[[コンテンツ]を表示]ドロップダウンのオプションになります。通常の検索ビュー(古いビューを取得して「検索」コンテキストフィルターを追加するだけの場合もある)とは異なり、ビューで検索APIを使用するには、特別なタイプのビューを作成し、使用する検索インデックスを選択して修正する必要がありますビューを作成する時点で、このドロップダウンでビューを選択します。
  • どういうわけか、実際の検索語をパイプする必要があります。一般的な方法は、「全文検索」コンテキストフィルターを使用することです。これは、URLの引数を使用する検索語として解釈します。 (検索サーバーに応じて、私は信じています)コンテキストフィルターを介して読み込まれたエンティティのコンテンツを検索語として使用する、人気のある「このような検索」オプションもあります(つまり、使用するように設定されたノードページのブロックの場合)ノードのnid。ノードのコンテンツを使用して検索した場合と同じように結果が表示されます)。別の方法は、公開されたフィルターを使用してから、URLクエリ文字列の入力または公開されたフィルター部分から検索語を取得することです。
  • 理由がよくわからない(おそらくエンティティAPIモジュールがエンティティビューのビュー統合を行う方法と関係があるため、いくつかの制限があります。詳細は http://drupal.org/node/1378656)をご覧ください )、Search APIビューの一部の要素は、通常の状態とは異なります。たとえば、ノードビューではパスは[path]になりますが、ノードを検索するように設定された検索インデックスのSearch APIインデックスビューでは、[url]になります。それは大したことではありません、ほとんどの場合、違いはかなり簡単に理解できますが、注意する必要があります。例:一部の関係は同様の理由で機能しません-複雑なビューを徹底的にテストし、問題が見つかった場合はSearch APIとEntity APIの両方の問題キューを調べます。

技術的には ドキュメントページ があり、誰かに役立つかもしれない、これのいくつかに触れています。

「検索ビュー」モジュールが有効になっていることを確認してください。ドキュメンテーションでは、どこにも誰も言及していないように見える何かが必要です。

8
Patrick Collins