Search Results
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

低レベル検索オプションを理解する

低レベル検索は Elasticsearchでのみ機能します。

低レベル検索は、Liferayの検索インデックスでドキュメントを検索するためのインフラであるSearch and Indexing Frameworkを経由しません。

低レベル検索の一般的な使用例は、Liferay DXPインデックス以外のインデックスを照会することです。 デフォルトでは、 検索ページ は Liferay DXP インデックスを検索しますが、別の Elasticsearch クラスター内にある場合でも別のインデックスを検索できます。

低レベル検索オプションウィジェットを検索ページに追加し、代替インデックスに検索を誘導するように設定します。 同じページから複数のインデックスを検索するには、複数の低レベル検索オプションウィジェットを追加し、それぞれにインデックス名と統合検索キーを設定します。

代替インデックスの検索は、Liferay DXPのパーミッションチェック機構をバイパスする低レベルの操作で、検索エンジンが返す結果をすべて提示します。 このため、低レベル検索オプションウィジェットを追加・設定できるのは管理者のみです。

低レベル検索オプションウィジェットを使用するには、[検索ページ]に追加します。

  1. ページで 追加 (Add app icon) をクリックして、ウィジェットの追加メニューを開きます。

    低レベル検索オプションウィジェットは、検索ウィジェットの下にあります。

  2. 検索セクションの低レベル検索オプションウィジェットをドラッグして、ページにドロップします。

  3. ウィジェット ヘッダーの オプション (Widget Options icon) → 構成をクリックします。

    設定リンクをクリックすると、ウィジェットの設定画面が表示されます。

    Liferay DXP 2025.Q1/Portal GA132 より前では、設定オプションはウィジェットの右上隅に表示されていました。

ウィジェットには様々なオプションが設定されています。

[Liferay 7.3+] 接続 ID: 検索時に使用する検索エンジン接続の接続 ID を選択します。 システム設定で構成されているアクティブな接続を設定できます。 これは、メインの Liferay 検索エンジン接続とは異なるクラスター内のインデックスを検索する場合にのみ必要です。 フェデレーション検索キー設定で検索するインデックス名を設定します。

インデックス: 検索する代替インデックスの名前をコンマで区切って入力します。 通常、Liferayの会社のインデックス名を入力するべきではありません。

返すフィールド: 検索エンジンから返される保存されたフィールドの名前をカンマ区切りで入力します。 空白にすると、保存されているすべてのフィールドが返されます。

含める貢献者: この検索に含める登録済みの貢献者のIDを、各 SearchRequestContributorの完全修飾クラス名(例: com.liferay.docs.request.contributor.MySearchRequestContributor)をカンマで区切って入力します。 設定されていない場合は、登録されているすべての検索貢献者が適用されます。

除外する貢献者: この検索から除外する登録済みの検索協力者のIDをカンマで区切って入除外除外除外除外力してください。 設定されていない場合は、登録されているすべての検索協力者が適用されます。

これらの Contributors は、検索リクエストをインターセプトしてクエリ部分を追加する拡張ポイント (SPI) である com.liferay.portal.search.spi.searcher.SearchRequestContributor インターフェイス ( com.liferay.portal.search.spi アーティファクトによって提供) を実装するコンポーネントです。

統合検索キー: このウィジェットが参加している代替検索のキーを入力します。 設定されていない場合、このウィジェットはデフォルトの検索に参加します。 この値は通常、アプリケーション定義のインデックスの名前です。

[Liferay 7.4以降] 属性: 検索コンテキストにキー/バリュー属性を追加します。 このセクションは、 検索ブループリント を検索ページに適用する場合に最も役立ちます。 開発やテストの目的にも使用できます。ページの検索コンテキストに、カスタム コードで読み取ることができる属性を追加します (例: searchContext.getAttribute("key"))。

低レベルの検索結果を表示する

Liferay社のインデックスに登録されているアセット(例: liferay-20097)は、 ModelSummaryContributor を実装して、検索結果ウィジェットで使用される独自の表示ロジックを提供することができます。 低レベルの検索では、サマリーがないため、表示ロジックが異なります。

  • フィールドが1つしか設定されていない場合、そのフィールドはタイトルフィールドとして表示されます(大きくて太いテキストが表示されます)。
  • 2つのフィールドが存在する場合、1つ目はタイトル(大きくて太いテキスト)として使用され、2つ目は説明フィールドとなります。
  • 2つ以上のフィールドが存在する場合は、最初のフィールドがタイトルフィールドとして使用され(大きな太字で表示されます)、残りのフィールドは説明フィールドとしてマッシュアップされます。

低レベルサーチフレームワークには、魅力的な結果サマリーをその場で作成するロジックが含まれています。

低レベルサーチとパーミッションチェック

低レベル検索では、パーミッションチェックはできません。 低レベル検索を使用して企業インデックスを検索すると、重要な 権限チェック が回避されます。 ほとんどの場合、権限チェックのメリットを求めますが、意図的に権限チェックを回避するユースケースとして考えられるのは、管理者専用の検索ページで、検索ページにアクセスする人は会社のインデックスにあるすべての結果にアクセスできなければならない場合です。

低レベルの検索と関連性

関連性スコアリングは、インデックスの中でのみ意味を持ちます。 別々のインデックスから得られた結果は、お互いに正確なスコアリングができません。 そのため、各インデックスからの結果を別の「検索結果」ウィジェットに表示するのがベストです。 以下の例がこれを示しています。

例1:代替インデックスの検索

  1. デフォルトの検索ページでテストする場合でも、新しい 検索ページを作成する場合でも、次のウィジェットを含めます (余分なウィジェットを削除すると演習が簡素化されますが、動作に必須ではありません)。

    • 低レベル検索オプション
    • カスタムフィルター
    • 検索バー
    • コマース検索結果
  2. オプションアイコン (Widget options icon) をクリックし、 構成を選択して、すべてのウィジェットが代替検索に参加するように設定します。 それぞれ、統合検索キーの設定に、 liferay-0 と入力します。

    代替検索に適切に反応することが期待されるすべての検索ウィジェットには、統合検索キーが設定されている必要があります。

    Liferay DXP 2025.Q1/Portal GA132 より前では、設定オプションはウィジェットの右上隅に表示されていました。

  3. 低レベル検索オプションウィジェットで追加設定を行い、代替インデックスのインデックス名を追加します。

    インデックス の設定で、少なくとも1つのインデックス名を入力します。 この例に従うには、 liferay-使用します。

  4. 検索バーのデフォルトのクエリパラメータ(q)を使用するようにカスタムフィルタを設定し、検索にクエリを追加します。

    カスタムパラメーター名に q と入力します。

    フィルタフィールドに title と入力すると、クエリにタイトルフィールドが追加されます。

    フィルタークエリタイプでMatch を選択します。

    代替インデックスを検索するためにデフォルトのクエリを上書きしているため、デフォルトではクエリには何もありません。 検索エンジンに送信するクエリ句は、 カスタム フィルター ウィジェットを使用して手動で追加する必要があります。

    重要

    検索バーのキーワードパラメータ名設定のデフォルト値と一致するように、カスタムパラメータ名を q に設定します。 マッチング・パラメータは、検索バーに入力されたユーザーのキーワードがカスタム・フィルタ・ウィジェットに適用されるようにします。 検索バーのキーワードパラメータ名にカスタム値が設定されている場合は、 qの代わりにその値を使用します。

ここでの例に従って liferay-0を検索する場合は、検索バーで dynamic を検索します。 結果は次のようになります。

低レベル検索による結果の例

例2:Liferayカンパニーインデックスと追加インデックスの検索

Liferay の会社インデックス (例: liferay-20098) からの結果セットと、 Liferay の Elasticsearch クラスター 内の興味のある代替インデックスからの結果セットを表示する 検索ページ を設定します (この例では、デモンストレーションのために liferay-0 を使用しています)。

  1. これらのウィジェットを 新しいページ Low Level Searchに追加します。

    ヒント

    この例では、1-2-1 列 (50/50) ページ レイアウト が便利です。

  2. ウィジェットの設定を行います。

    検索ウィジェットウィジェット設定説明
    低レベル検索オプションインデックス: liferay-0
    統合検索キー: liferay-0
    これにより、代替インデックスの検索が設定されます。 ここでは、デモ目的のために、Liferayが管理する別のインデックスを使用しています。 統合検索キーは、任意の覚えやすい文字列です。 この例では、1つの追加インデックスのみを検索するので、インデックス自体と同じ名前になっています。
    検索結果(最初)-検索結果ウィジェットは、Liferayの企業インデックス用にあらかじめ設定されていますので、これはすべてデフォルトのままで構いません。
    検索結果(秒)統合検索キー: liferay-0また、どのフィールドを表示するかなどの設定も可能です。 このオプションを空白のままにしておくと、 Liferay にそれを理解させることになります。
    検索バー(最初)-最初の検索バーは、会社のインデックスを検索するように設定されているので、デフォルトのままにしておきます。
    サーチバー(2番目)非表示: true
    統合検索キー: liferay-0
    ユーザーの入力に使用されるのは1つの検索バーだけなので、この検索バーは非表示にする必要があります。 重要なのは、両方の検索バーウィジェットで「キーワードパラメータ名」のデフォルト値を残したことです。 この検索バーは、ページに表示されている検索バーとパラメータを共有しているため、ユーザーが入力した検索語を取り込むことができます。
    カスタムフィルターフィルターフィールド: title_en_US
    発生: 必要
    カスタムパラメータ名:q
    非表示: true
    統合検索キー: liferay-0
    カスタムフィルターウィジェットは、 liferay-0 インデックスのタイトルフィールドと一致する必要があります。 より多くのフィルターを使用したい場合は、カスタムフィルターウィジェットを追加してください。
    重要

    検索バーのキーワードパラメータ名設定のデフォルト値と一致するように、カスタムパラメータ名を q に設定します。 マッチング・パラメータは、検索バーに入力されたユーザーのキーワードがカスタム・フィルタ・ウィジェットに適用されるようにします。 検索バーのキーワードパラメータ名にカスタム値が設定されている場合は、 qの代わりにその値を使用します。

低レベル検索ページの機能を試すには、

  1. サイト内に少なくとも1つのアセット(Blogエントリー、Webコンテンツ記事など)を追加し、作成したアセットには コンテンツ という単語を入れてください。

  2. 低レベル検索ページの検索バーに、 content と入力し、両方のインデックスから結果が得られることを確認します。

別々のインデックスからの結果は、別々の検索結果ウィジェットに表示するのが最適です。

これで、すぐに使用できる検索ウィジェットを設定して、クラスター内の任意の Elasticsearch インデックスに対する検索に参加できるようになりました。