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

検索機能ブループリントの作成と管理

ユーザーに合わせて検索エクスペリエンスをカスタマイズするために、 個の検索ブループリント を作成します。 設計図検索アプリケーションは、グローバルメニュー(Global Menu)→アプリケーション→設計図にあります。

既にブループリントがあり、その機能を Liferay 検索ページに適用したい場合は、 検索ページでの検索ブループリントの使用 を参照してください。

検索設計図を作成するには、

  1. グローバルメニュー (Global Menu) → アプリケーションブループリント をクリックします。

  2. 新規 をクリックして、新しい設計図を作成します。

    作成モーダルでは、 コレクションプロバイダー を切り替えることで、ブループリントの検索ロジックをコレクション表示フラグメントで使用できます。 詳細については、 検索ブループリントを含むコレクション を参照してください。

    ブループリント追加モーダルウィンドウからブループリントの作成を開始します。

    Liferay DXP 2026.Q1 より前のバージョンでは、ブループリントをコレクション プロバイダーとして有効にするために、 LPS-129412 リリース機能フラグ を有効にする必要があります。

  3. 設計図に名前(必須)と説明(任意)を付けてください。

    Liferay DXP 2023.Q4以降では、タイトルと説明のフィールドをローカライズできます。 翻訳を提供するには、以下のいずれかの方法を使用してください。

    • 設計図が作成されたら、タイトルと説明のモーダルを再度開き、言語を選択して翻訳を開始します。

      設計図のタイトルと説明を翻訳できます。

    • 言語オーバーライド アプリケーションを使用して、言語キー (例: search-for-new-content) とその翻訳値 (例: Search for New Content を英語に翻訳) を指定します。

  4. クエリビルダー を使用して、単一のインターフェース内でブループリントの検索ロジックとスコープの両方を定義します。 これらの設定を組み合わせることで、コンテキストを切り替えることなく、コンテンツの検索方法や検索の実行場所を管理できます。

    • 検索範囲を定義する:検索対象を特定のサイト、アセットライブラリ、およびスペースに限定します。

    • クエリ要素の追加:既製の要素から選択するか、カスタムJSON要素を作成して、ブループリントが結果をフィルタリングおよびランク付けする方法を定義します。

    • クエリ設定の管理:クエリに関する追加設定(検索対象のアセットやオブジェクトの種類など)を構成します。

    クエリビルダーを使用して、ブループリントの検索ロジックと実行範囲の両方を定義します。

    特定の範囲を定義しない場合、ブループリントはデフォルトで利用可能なすべてのコンテンツを検索します。 これらのツールを使用して、検索ソリューションが実装に必要な正確なデータセットを対象としていることを確認してください。

  5. ソートや集計などの高度な検索パラメータを管理するには、 設定 を使用します。 このインターフェースから、ブループリント の コレクションプロバイダを有効または無効にすることもできます。

    検索リクエストを設定するには、設定画面を使用してください。

  6. 設計図を作成・設定しながら、テストを行ってください。 [プレビュー] をクリックし、検索キーワードを入力してください。

    設計図を実行する前に、プレビューを確認してください。

    詳細については、 ブループリントのテスト を参照してください。

  7. 最初の設計図の作成が完了したら、 保存 をクリックします。

設計図を作成するには、多くの場合、反復的なテストが必要となる。 設定を保存するため、作業の進捗状況をこまめに保存してください。

既存のブループリントは、Actions メニュー (Actions) から編集、削除、またはエクスポートできます。 アプリケーションの「アクション」メニューから設計図をインポートできます。

設計図のアクションメニューから、編集、削除、またはエクスポートを行います。

クエリビルダーの使用

クエリビルダーを使用して

  1. 検索範囲を定義します

  2. ブループリントに要素を追加します

  3. 検索するLiferayアセットを選択してください

検索範囲の定義

クエリビルダー内のスコープ設定を使用すると、検索結果を特定のサイト、アセットライブラリ、またはスペースに限定できます。 この専用設定を使用することは、検索範囲を定義する推奨方法です。クエリ要素による手動フィルタリングよりもパフォーマンスが高いためです。

  1. クエリビルダーのタブに移動します。

  2. スコープ セクションで、 スコープの選択 をクリックします。

  3. 検索したい特定のサイト、アセットライブラリ、またはスペースを選択してください。

  4. 設計図を保存するには、 をクリックして保存 をクリックしてください。

特定の範囲を選択しない場合、ブループリントはデフォルトで利用可能なすべてのコンテンツを検索します。

ブループリント内でスコープを定義すると、それは厳密な境界として機能します。 検索時に要求されるスコープは、設計図で定義されたスコープのサブセットでなければなりません。要求されたスコープがこの範囲外にある場合、検索結果は返されません。

標準搭載のクエリ要素やカスタムクエリ要素による手動フィルタリングではなく、このネイティブなスコープ設定を使用してください。 この方法により、より直感的な設定が可能になり、検索範囲を定義するためのより効率的な方法が提供されます。

ブループリントに要素を追加する

ブループリントにクエリ句を追加するには、要素を追加します。

  1. クエリ ビルダー タブに移動し、クエリ要素セクションで 追加 (Add) をクリックします。

    設計図に要素を追加します。

  2. 探索したい要素カテゴリを展開してください。

  3. 要素の上にカーソルを合わせ、 をクリックして を追加します。

  4. 要素がクエリビルダーに追加され、設定準備が整いました。

    この要素は、検索ユーザーが会員になっているサイトで見つかったコンテンツに10のブーストを与えます。

  5. 検索クエリを希望どおりに設定するために、必要な数の要素を追加してください。

    各既成要素の説明については、 ブループリント要素リファレンスの検索 を参照してください。

    クエリ要素は、権限フィルターや公開フィルターなどのデフォルトのシステムクエリ句と競合する可能性があります。 最終的な検索リクエストが期待どおりであることを確認するために、必ずプレビューツールを使用して設定をテストしてください。

  6. カスタム要素が必要な場合は、カスタムJSON要素をクエリビルダーに追加し、必要なクエリ句を記述してください。

    カスタム JSON 要素の作成方法については、 要素の作成 を参照してください。

重要

要素によっては、クエリビルダーの設計図に追加するだけでは不十分な場合があります。 例えば、[長めのコンテンツをブースト] 要素や [より多くのバージョンを含むコンテンツをブースト] 要素を使用するには、[コントロール パネル] → [検索] → [インデックス アクション] で次のエントリを再インデックスする必要があります。

  • com.liferay.blogs.model.BlogsEntry
  • com.liferay.document.library.kernel.model.DLFileEntry
  • com.liferay.journal.model.JournalArticle
  • com.liferay.knowledge.base.model.KBArticle
  • com.liferay.wiki.model.WikiPage

位置情報機能を提供する要素(例:Boost Proximity)など、その他の要素には追加の設定が必要です。 詳細については、 要素リファレンス を参照してください。

要素を追加したら、必ず設計図を保存してください。

デフォルトでは、ブループリントはすべてのアセットタイプを対象に検索を行います。 検索対象の種類を設定することで、検索クエリを特定のコンテンツに限定できます。

  1. クエリ ビルダーソース検索可能な型とサブタイプ に移動します。

  2. 選択されたタイプ資産タイプを選択 をクリックします。

  3. 選択モーダルを使用して、検索に含める特定のアセットまたはオブジェクト定義を選択してください。

検索可能なタイプのセクションから、特定のオブジェクト定義のエントリなどの特定のコンテンツを対象としたり、 サブタイプ (Web コンテンツ構造、ドキュメントタイプ、動的データリストなど) を選択して範囲をさらに絞り込むことができます。 Liferay DXP 2026.Q1 より前のバージョンでは、サブタイプフィルタリングを使用するには、 LPS-129412 リリース機能フラグ を有効にする必要があります。

検索可能なタイプのドロップダウンを展開して、検索ブループリントからアセットの削除を開始します。

検索可能なタイプのモーダルで全てのアセットの選択を解除することは、全てのタイプを選択することと同じです。つまり、ブループリントは全てのアセットとオブジェクトタイプを検索します。 特定の検索句を無効にする方法については、 クエリ句コントリビューターの設定 を参照してください。

検索可能なタイプの構成を編集した後は、必ず設計図を保存してください。 ブループリントのコレクション プロバイダーが有効になっている場合、検索可能なタイプを変更すると、既存のフラグメント マッピングが壊れる可能性があります。 コレクション表示フラグメントで現在使用されている型を削除する場合は、それらのマッピングを手動で更新する必要があります。

検索対象タイプの設定でアセットタイプを無効にすると、そのアセットタイプのインデックス作成コードによって通常生成されるクエリ句が除外されます。 その結果、当該アセットタイプは検索対象から外れ、ブループリントを適用してもエンドユーザーは当該タイプの検索結果を見ることができなくなります。

検索可能なタイプは、どの資産が検索に参加するかを制御するだけでなく、どのバックエンドクエリ句が適用されるかも決定します。 次のセクションでは、検索可能な型、インデクサー句、およびクエリの寄与要素がどのように相互作用して検索動作を形成するかを説明します。

詳細:クエリ句のコントリビューターを設定する

Liferayのバックエンドコード(およびLiferayインスタンスにデプロイされている可能性のあるカスタムアプリケーション)は、進行中の検索にクエリ句を提供します。

バックエンドから提供されるこれらの条項は、検索ブループリントを介して設定できます。 しかし、ほとんどのユーザーは次の2つの設定を触るべきではありません。

  • 検索フレームワークのインデクサー条件
  • 検索フレームワークのクエリコントリビューター

通常はデフォルトの設定で十分です。 もし、 [Searchable Types]を使う以外にこの動作を微調整する必要があると確信するならば、これらのバックエンドのコントリビューターの動作方法を理解する必要があります。

  1. 検索可能なタイプ: これを使用して、個々のインデクサーを検索から無効にします。 型のインデクサーを無効にすると、その型のクエリコントリビューターがアクティブなままであっても、その型に対する句が追加されなくなります。 これらの種類の検索結果はユーザーには表示されません。

  2. 検索フレームワークインデクサー句: これを使用して、すべての Liferay インデクサーが検索に句を提供しないようにします。 これは、検索クエリをゼロから完全に構築し、クエリの貢献者と検索可能なアセットをすべて無効にするためのものです。

  3. 検索フレームワーククエリの貢献者: これを使用して、特定の貢献者またはすべての貢献者が検索に参加できないようにします。 個々のコントリビューターを無効にして独自のカスタムブループリント構成で上書きするか、すべての句を無効にして、Liferayのインデクサーや検索可能なタイプを含むデフォルトの検索動作を完全に上書きします。

重要
  • Liferay 7.2 では、Liferay のインデクサー フレームワークがリファクタリングされ、現在ではほとんどのアセットがクエリ コントリビューターを使用して、Liferay の検索に検索クエリ句を追加しています。 Wikiページやナレッジベースの記事は引き続きインデクサーパターンを使用します。これらのアセットの句は、「検索フレームワークインデクサー句」設定が有効になっている場合、常に検索クエリに追加されます。 すべてのインデクサーを無効にするか、さらに句を追加することで(例えば、特定の句の一致を強化するなど)、これらのアセットの検索動作を調整できます。
  • すべてのインデクサーとコントリビューターを無効にしても、Liferayのコントリビュート検索句を完全に上書きすることにはなりません。 一部のインデクサーやコントリビューターは、これらの設定に関係なく、独自の条項を提供します。

特定の句生成元、またはすべてのインデクサーが検索クエリに句を生成しないように無効にします。

句の貢献者またはインデクサーの動作を編集する場合は、必ずブループリントを保存してください。

構成の追加

クエリ要素以外にも、JSON構成を使用してブループリントにグローバル検索設定を適用できます。 これらの設定により、検索結果の構造を正確に制御できます。

コレクション プロバイダーとして有効化: ブループリントをコレクション プロバイダーとして登録し、その結果をコレクション表示フラグメントで使用できるようにします。

集計: 検索結果をグループ化したり、カウントを提供したり、統計的要約を作成したりするために、データのバケットを定義します。

ハイライト: 検索結果内で検索語を強調表示します。

ソート: 検索結果のカスタム順序を定義します。

パラメータ: 検索リクエストに変数を渡します。

詳細設定: 低レベルの検索エンジン設定にアクセスします。

追加設定はJSONを使用して設定することができます。

JSON設定を追加するには、

  1. 設定 タブに移動します。

  2. 目的の設定項目のテキスト入力ボックスを探してください。

  3. JSON設定を入力してください。 たとえば、結果を「name」フィールドで降順(アルファベット順の逆順、–Z-A)に並べ替えるには、Sort設定に次の JSON を追加します:

    {
       "sorts": [
          {
             "title_sortable": "desc"
          }
       ]
    }
    
  4. [保存]をクリックします。

詳細については、 ブループリント構成リファレンスの検索 を参照してください。

ブループリントのインポートとエクスポート

ブループリントはJSONオブジェクトです。 インポート機能とエクスポート機能を使用して、テスト済みの構成を本番環境に移行するなど、環境間で設計図を移行します。

ブループリントJSONをエクスポートするには、

  1. グローバルメニュー (Global Menu) → アプリケーションブループリント をクリックして、ブループリントアプリケーションを開きます。

  2. 設計図の一覧から、設計図の アクション (Actions) をクリックし、 エクスポート をクリックします。

ブループリントのJSON定義をインポートするには、

  1. グローバルメニュー (Global Menu) → アプリケーションブループリント をクリックして、ブループリントアプリケーションを開きます。

  2. 右上のメイン設計図 アクション (Actions) メニューをクリックし、 インポート をクリックします。

  3. 有効な設計図JSONファイルを選択してください。 この画面から、有効な要素を含むJSONファイルをインポートすることもできます。

    設計図と要素をインポートします。

  4. [Import(インポート)]をクリックします。

プレビューサイドバーでブループリントをテストする

プレビューサイドバーがあり、進行中の設計図に基づいて検索結果を確認するのに便利です。 ブループリントの編集画面から [プレビュー] ボタンをクリックすることでプレビューにアクセスできます。

設計図を実行する前にプレビューを確認してください。

ここでは、これらの機能にアクセスできます。

  • 検索リクエスト文字列全体を表示するには、 生のリクエストを表示 をクリックしてください。 [Raw Request]モーダルから、リクエストをクリップボードにコピーするか、JSONファイルとしてダウンロードすることができます。 これは、検索ページの Search Insights ウィジェットに表示されるリクエストと同じです。

  • [生の応答を表示]をクリックすると、検索応答文字列全体を表示します。 ここでは、応答をクリップボードにコピーするか、JSONファイルとしてダウンロードできます。 これは、検索ページの 検索インサイト ウィジェットに表示される文字列と同じです。

    Elasticsearchから返された生の応答文字列を表示します。

  • 各結果のスコアは、結果タイトルの左側に表示されます。 スコアをクリックすると、スコアの説明が表示されます。

    結果のスコアの説明を表示します。

  • 結果を展開して、返されたドキュメントのすべてのフィールドを見るには、結果のタイトルの右側にある右向きの角括弧をクリックします。

    ドキュメントのフィールドを調べます。

一部の要素 は、手動で指定または上書きできる検索コンテキスト属性を読み取ります。 これらの要素を含む設計図をテストするには、歯車アイコン(Gear)をクリックして、設計図プレビュー検索に検索コンテキスト属性を追加します。 属性のキーと値のペアを入力し、 [完了]をクリックします。 この属性は設計図のプレビュー時のみに設定され、設計図自体には保存されないことに注意してください。 これらの属性は検索ページで設定できます。 詳細については、 検索ページでの検索ブループリントの使用 を参照してください。

例えば、

  1. administrativeという カテゴリーで新しい<0>語彙を追加する。

  2. 新しい ウェブコンテンツ記事を 2 つ追加します。両方のタイトルフィールドに テスト が含まれていることを確認してください。 そのうちの1つを、作成したカテゴリーに関連付けます。

  3. 新しいブループリントを作成し、条件要素 ゲストユーザー向けにカテゴリ内のコンテンツを非表示にする を追加します。

  4. 資産カテゴリ名(ID)フィールドで、 管理 を選択するか、ID がわかっている場合は手動で入力してください。

  5. プレビューサイドバーの 属性 を開いて入力する

    キー: user.is_signed_in

    値: false

  6. 完了をクリックし、 テスト を検索します。

検索結果には、分類されていないウェブコンテンツ記事のみが表示されます。 手動で設定された属性により、検索ユーザーがゲストであるかのように動作するため、カテゴリ分けされた記事は非表示になっています。

この例では、コンテキスト変数 user.is_signed_in を読み取る要素を使用しています。 値を手動で設定することで、既存の値を上書きし、設計図が特定の動作を実証できるようにします。 値はすでに検索コンテキストに存在するため、手動での設定は任意です。 その他の要素には、通常の検索リクエストのコンテキストには存在しないカスタムパラメータが必要となる場合があります。 要素/ブループリントが正しく機能するためには、プレビューサイドバーからブループリントをテストする場合でも、検索ページで使用するようにブループリントを設定する場合でも、これらの情報を手動で検索コンテキストに渡す必要があります。

外部参照コード(ERC)の設定

Liferay DXP 2023.Q4+/Portal GA102+

設計図は編集可能なERCファイルで参照できます。可能な限りこの方法をお勧めします。 利便性を考慮して、ERCには覚えやすく人間が読みやすい値を設定できます。 ブループリントエディタから、ERCの横にある 編集 Edit をクリックします。

ERCコードを覚えやすく、読みやすいものに編集してください。

この人間が読めるERCは、検索ページや ヘッドレス検索リクエストでブループリントを設定するときに便利です。

Elasticsearchのアップグレード中に検索ブループリントを管理する

Elasticsearchのメジャーバージョンアップグレード後は、カスタムクエリ要素と高度な設定をテストしてください。 カスタムクエリ要素、Elasticsearchクエリ要素、または高度なブループリント構成(集計、ハイライト、ソートなど)は、これらの機能を支えるAPIが変更される可能性があるため、Elasticsearchのメジャーアップグレード後に動作しなくなる可能性があります。 Elasticsearch リリース ノートと破壊的変更に関するドキュメント を参照してください。 LiferayはこれらのAPIの使用状況を自動的にアップグレードしません。

次のステップ