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

検索ブループリント設定のリファレンス

検索ブループリントのユーザー インターフェースには、ブループリントを作成するためのクエリ ビルダーがあります。 要素を追加してクエリ設定を構成する以外にも、多くのブループリントの使用例にとって重要な追加の構成があります。 これらの構成を操作するには、グローバル メニュー → アプリケーション → ブループリント に移動します。 新しいブループリントを追加するか、既存のブループリントを開いて、 構成 タブをクリックします。

JSON を使用して検索ブループリントを構成します。

各構成フィールドは、JSON 文字列を受け入れる単一のテキスト領域で構成されます。

コレクションプロバイダーとして有効にする

2025年第3四半期以降

リリース機能 (LPS-129412)

ブループリントを作成するときに、それをコレクションプロバイダーとして有効にすることを選択できます。

作成後、Blueprints アプリケーションの [構成] タブから設定を更新できます。

収集プロバイダーを有効または無効にします。

集約構成

検索ブループリントで 集計 を構成します。 集計はクエリの結果を取得し、データを論理セットにグループ化します。 集計を構成することで、複雑なデータ要約を提供できます。

検索ブループリントに追加された集計は、検索リクエストにすでに存在する集計 (ファセットなど) に加えて適用されます。

警告
  • 集計は設定可能で、検索応答で返されますが、Blueprint で追加された集計を Liferay の UI に表示したり処理したりするためのすぐに使用できる方法はありません。 ブループリントに追加された集計を使用するには、カスタム コードが必要です。
  • Liferay SaaS では Basic Elasticsearch ライセンスが使用されるため、一部の集計は利用できません。 詳細については、 Elastic のサブスクリプションの比較を参照してください。

ブループリントに集約を追加するには、

  1. ブループリント エディターから、 構成 タブをクリックします。

  2. 集約構成テキスト領域を見つけて、有効な JSON を入力します。 Elasticsearch DSL を使用して JSON を作成します。

    警告

    一部の集計プロパティは、Liferay の検索 API ではサポートされていません。

    
    
    {
       "aggs": {
          "date_histogram-test": {
             "date_histogram": {
                "date_histogram_interval": "minute",
                "field": "modified",
                "keyed": true,
                "min_doc_count": 1,
                "order": {
                   "_count": "asc"
                }
             }
          }
       }
    }
    

ネストされたフィールドを持つ集計

ネストされたフィールドの集計を構成するには、次の集計をネストします。

  1. [オプション] フィルター集約 を使用して、まず対象となるエントリ タイプ (オブジェクトや Web コンテンツ構造など) に集約を絞り込むことができます。
  2. ネストされたコンテキスト内を移動するパスを指定するための ネストされた 集約を追加します。
  3. ネストされたフィールドにサブ集計を追加します。

たとえば、次の集計はオブジェクト タイプでフィルタリングし、 avg メトリック集計を追加して、オブジェクトの整数フィールドの平均値を計算します。

{
   "aggs": {
      "filter_object": {
         "filter": {
            "term": {
               "entryClassName": "com.liferay.object.model.ObjectDefinition#33080"
            }
         },
         "aggs": {
            "object_nested": {
               "nested": {
                  "path": "nestedFieldArray"
               },
               "aggs": {
                  "object_avg": {
                     "avg": {
                        "field": "nestedFieldArray.value_integer"
                     }
                  }
               }
            }
         }
      }
   }
}

ハイライト構成

検索ブループリントで ハイライト を構成します。 検索ブループリントでハイライト設定を追加すると、デフォルトの検索ハイライト設定が上書きされます。

ブループリントにハイライトを追加するには、

  1. ブループリント エディターから、 構成 タブをクリックします。

  2. ハイライト構成テキスト領域を見つけて、有効な JSON を入力します。 プロパティとその可能な値の詳細については、 Elasticsearch ドキュメントを参照してください。

    {
       "fields": {
          "content_${context.language_id}": {},
          "title_${context.language_id}": {}
       },
       "fragment_size": 100,
       "number_of_fragments": 10,
       "post_tags": [
          "</liferay-hl>"
       ],
       "pre_tags": [
          "<liferay-hl>"
       ],
       "require_field_match": true
    }
    

並び替え構成

を構成すると、検索ブループリントで が並べ替えられます。 検索ブループリント経由で追加された並べ替えは、検索リクエストにすでに含まれている並べ替え (並べ替えウィジェットなど) に加えて適用されます。 ただし、検索ブループリントに追加されたソートは、ソート ウィジェットの UI または構成画面には反映されません。

警告

検索ページでソートを構成するために、ソート ウィジェットとブループリントの両方を使用しないでください。 ソート ウィジェットのソートと検索ブループリントのソート構成を組み合わせた場合、一貫した動作は保証されません。

ブループリントにソートを追加するには、

  1. ブループリント エディターから、 構成 タブをクリックします。

  2. ソート構成テキスト領域を見つけて、有効な JSON を入力します。

    {
       "sorts": [
          {
             "title_sortable": "desc"
          }
       ]
    }
    

パラメーター構成

次の属性から新しいテンプレート変数を宣言できます。

  1. 検索コンテキスト属性。
  2. ヘッドレス検索リクエスト属性 プレフィックスは search.experiences です (例: search.experiences.my.attribute)。

たとえば、カスタム フィルター ウィジェットをウィジェット テンプレートおよびブループリントと組み合わせて、エンド ユーザーが未公開コンテンツと下書きコンテンツの間で検索結果を切り替えることができるようにすることができます。

この例では、属性の値が trueの場合に、検索結果から Web コンテンツを除外する新しい検索コンテキスト属性を追加します。

  1. 新しいブループリントにパラメータ設定を追加します。 設定 タブに移動し、パラメータ設定テキスト ボックスを見つけます。 追加

    {
       "parameters": {
          "exclude.journal_articles": {
             "type": "String"
          }
       }
    }
    
  2. ブループリントにカスタム要素を追加する: クエリ ビルダー タブに移動し、カスタム JSON 要素を見つけて、 追加をクリックします。 既存のコンテンツを上書きします。

    {
       "description_i18n": {
          "en_US": "Conditionally exclude journal articles from the search."
       },
       "elementDefinition": {
          "category": "hide",
          "configuration": {
             "queryConfiguration": {
                "queryEntries": [
                   {
                      "clauses": [
                         {
                            "context": "query",
                            "occur": "filter",
                            "query": {
                               "bool": {
                                  "should": [
                                     {
                                        "bool": {
                                           "must_not": [
                                              {
                                                 "term": {
                                                    "entryClassName": {
                                                    "value": "com.liferay.journal.model.JournalArticle"}
                                                 }
                                              }
                                           ]
                                        }
                                     },
                                     {
                                        "bool": {
                                           "must": [
                                              {
                                                 "term": {
                                                    "discussion": false
                                                 }
                                              }
                                           ]
                                        }
                                     }
                                  ]
                               }
                            }
                         }				
                      ],
                      "condition": {
                         "contains": {
                            "parameterName": "exclude.journal_articles",
                            "value": "true"
                         }
                      }
                   }
                ]
             }
          },
          "icon": "hidden"
       },
       "title_i18n": {
          "en_US": "Exclude Journal Articles"
       }
    }
    
  3. 検索コンテキスト属性を追加します。 テスト目的で、 プレビュー サイドバーでこれを行うことができます。

  4. プレビューをクリックします。 歯車アイコン (Gear) をクリックして、ブループリント プレビュー検索に検索コンテキスト属性を追加します。 属性のキー/値のペアを入力します: exclude.journal_articles/true

  5. 次に、 完了をクリックします。

チェックポイント: Web コンテンツ記事 (必要に応じて追加) を返すことが予想される検索を実行し、記事が返されないことを確認します。 属性設定を再度開き、値を falseに設定します。 プレビュー検索に Web コンテンツが含まれていることを確認します。

ヒント

詳細設定

警告

これはめったに必要のない高度な機能です。

高度な設定では、

  1. 同一のキーワード フィールド値を持つ結果 を、 折りたたみ パラメータを使用して折りたたみます。
  2. ブループリントの応答で、 フィールド パラメータを使用して、インデックスが付けられた フィールドが 返されるように設定します。 Liferay DXP 2024.Q4/Portal GA129 以前では、多くのフィールドはデフォルトで 保存 されていました。 これらのバージョンでは、 stored_fields パラメータを使用します。
  3. 特定のフィールドを削除するか、 応答からソース フィールド を除外します。

たとえば、詳細設定では、検索リクエストパラメータとして ソースインクルードを追加し、 を除外します。 Elasticsearch の _source フィールドには、インデックス要求に渡された保存されたドキュメント本体が含まれています。 このフィールド自体はインデックス化されていません。 ブループリントの高度な構成では、構成内の ソース JSON 要素を使用して、含めるフィールドまたは除外するフィールドを指定して、フィールドを整理できます。 機能が重複しており、低レベル検索オプション ウィジェットの 返されるフィールド 構成と競合する可能性があるため、両方のアプローチを同時に使用しないでください。 ブループリントのソースフィールドを設定するには、

  1. ブループリント エディターから、 構成 タブをクリックします。
  2. 詳細構成テキスト領域を見つけて、必要な 除外包含 を入力します。 ワイルドカードが許可されます。
{
    "source":{
        "excludes":[
            "<fieldName1>",
            "<fieldName2>"
        ],
        "fetchSource":true,
        "includes":[
            "<fieldName3>",
            "<fieldName4>"
        ]
    }
}

コントロールパネルで検索ブループリントを構成する

検索ブループリントのほとんどの構成は、ブループリント アプリケーションと検索ページ自体に直接記載されています。 ただし、検索ブループリントで地理位置情報機能をサポートするサービスを有効にするシステム/インスタンス構成が 2 つあります。

両方の構成エントリは、コントロール パネル → システム/インスタンス設定の検索エクスペリエンス カテゴリにあります。

検索ブループリントで地理位置情報機能を有効にするには、ipstack および OpenWeatherMap サービスを構成します。

Ipstack は、ユーザーの IP アドレスに基づいて地理位置情報を提供します。

Ipstack の設定デフォルト値説明
有効Falseipstack サービスを有効にするには、ボックスをオンにします。
API キーなしサービスを有効にするには、ipstack.com から API キーを取得する必要があります。
API の URLhttp://api.ipstack.comサービスの URL を提供します。
キャッシュのタイムアウト時間604800キャッシュされたデータの有効期限が切れて API が再呼び出されるまでの時間 (ミリ秒) を設定します。

OpenWeatherMap は、ipstack と組み合わせて使用され、ユーザーの位置に基づいて天気情報を提供します。 Search Blueprints でこれを使用するには、ipstack も有効にする必要があります。

Ipstack の設定デフォルト値説明
有効FalseOpenWeatherMap サービスを有効にするには、チェックボックスをオンにします。
API キーなしサービスを有効にするには、openweathermap.org から API キーを取得する必要があります。
API の URLhttp://api.openweathermap.org/data/2.5/weatherサービスの URL を提供します。
キャッシュのタイムアウト時間604800キャッシュされたデータの有効期限が切れて API が再呼び出されるまでの時間 (ミリ秒) を設定します。
単位統計情報天気データの単位システムを設定します。インペリアル、メートル法、または標準を選択します。