検索機能の概要
検索は、Liferayの基本的なコンポーネントです。 Elasticsearchは、テストや開発の目的でLiferayにバンドルされています。 本番環境では、リモートサーバ上でElasticsearchを動作させる必要があります。 Elasticsearchを開始する では、リモートサーバーの設定について説明しています。 しかし、バンドルされているElasticsearchエンジンを使えば、すぐに検索機能を利用することができます。
ここでは、検索機能を紹介します。
- フルテキスト検索
- すべてのコンテンツタイプ(ブログ、ドキュメント、Webコンテンツなど)のインデックス作成
- 高度に設定可能な検索ページ
- 各ページのヘッダーに埋め込まれた検索バー
- 追加、更新、削除されたコンテンツの自動インデックス同期
- ロールやパーミッションによる検索結果のフィルタリング
- 検索候補
- 検索結果の設定(フィルターやソートなど)
- ファセット検索
- 高度な検索構文(AND/OR/NOT、ワイルドカードなど)の有効化・無効化
検索ページとウィジェット
デフォルトの検索ページ(localhost:8080/search
)には、実用的な検索ウィジェットのセットがあります。 このページはカスタマイズ可能で、グローバル検索ページのテンプレート(こちらもカスタマイズ可能)をベースにしています。
検索ウィジェットをページに追加するには、ページの[追加]ボタンをクリックし、[ウィジェット]を選択して、[検索]カテゴリを開きます。
詳細は、 検索ページの構成 または 検索ページとウィジェットを参照してください。
検索の構成と管理
コントロールパネルでは、検索機能の設定、接続とフィールドのマッピングの表示、検索インデックスアクションの実行が可能です。
検索の設定は、コントロールパネルのシステムスコープで行うことができます。 設定のカテゴリでは、 システム設定 → 検索 を選択してください。 検索設定画面が表示されます。
検索の管理画面では、検索の接続やフィールドのマッピングを調べたり、インデックスを実行したりすることができます。 コントロールパネルの「設定」カテゴリにある 「検索」 を選択して、これらを表示します。
詳細は、 検索の管理とチューニングをご覧ください。
検索におけるカスタム開発
検索のカスタマイズには、通常、これらの検索フェーズのうち少なくとも1つが含まれます。
インデックス は、1つ以上のドキュメントを検索エンジンに送信することです。 ドキュメントには、さまざまなタイプのフィールド(テキスト、キーワードなど)が含まれています。 検索エンジンは各フィールドを処理し、フィールドを保存するか分析するかを決定します。
検索 は、検索クエリを送信して結果を取得します(別名 ヒット)検索エンジンから。 クエリとフィルタは検索リクエストの一部にすることができ、どちらも検索対象のフィールドと照合する値を指定します。 サーチエンジンは、ネストされたクエリとフィルタ内の各フィールドを繰り返し実行し、オプションとして、クエリを実行する前に特別な分析を行います(検索時間分析)。 検索時間分析は、マッピング定義を介してフィールドごとに構成できます。
検索機能は、サービス・プロバイダー・インターフェースとAPIを使って、それぞれ拡張したり呼び出したりすることができます。
-
サービス・プロバイダー・インターフェイス(SPI)は実装することを目的としています。 ソースコードでは、
-spi
で終わるモジュールに含まれています(例えば、portal-search-spi
module など)。 -
APIには、独自のコードで呼び出すことができるメソッドが含まれています。 ソースコードでは、
-api
で終わるモジュールの中にあります(例えば、portal-search-api
モジュール など)。
詳しくは、 開発者ガイド をご覧ください。
次のステップ
コンテンツの検索による検索機能をご紹介します。 本番環境用に検索を設定する準備ができたら、 Elasticsearchを開始するを参照してください。