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

各構成フィールドは、JSON 文字列を受け入れる単一のテキスト領域で構成されます。
コレクションプロバイダーとして有効にする
2025年第3四半期以降
ブループリントを作成するときに、それをコレクションプロバイダーとして有効にすることを選択できます。
作成後、Blueprints アプリケーションの [構成] タブから設定を更新できます。

集約構成
検索ブループリントで 集計 を構成します。 集計はクエリの結果を取得し、データを論理セットにグループ化します。 集計を構成することで、複雑なデータ要約を提供できます。
検索ブループリントに追加された集計は、検索リクエストにすでに存在する集計 (ファセットなど) に加えて適用されます。
- 集計は設定可能で、検索応答で返されますが、Blueprint で追加された集計を Liferay の UI に表示したり処理したりするためのすぐに使用できる方法はありません。 ブループリントに追加された集計を使用するには、カスタム コードが必要です。
- Liferay SaaS では Basic Elasticsearch ライセンスが使用されるため、一部の集計は利用できません。 詳細については、 Elastic のサブスクリプションの比較を参照してください。
ブループリントに集約を追加するには、
-
ブループリント エディターから、 構成 タブをクリックします。
-
集約構成テキスト領域を見つけて、有効な 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" } } } } }
ネストされたフィールドを持つ集計
ネストされたフィールドの集計を構成するには、次の集計をネストします。
- [オプション] フィルター集約 を使用して、まず対象となるエントリ タイプ (オブジェクトや Web コンテンツ構造など) に集約を絞り込むことができます。
- ネストされたコンテキスト内を移動するパスを指定するための ネストされた 集約を追加します。
- ネストされたフィールドにサブ集計を追加します。
たとえば、次の集計はオブジェクト タイプでフィルタリングし、 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"
}
}
}
}
}
}
}
}
ハイライト構成
検索ブループリントで ハイライト を構成します。 検索ブループリントでハイライト設定を追加すると、デフォルトの検索ハイライト設定が上書きされます。
ブループリントにハイライトを追加するには、
-
ブループリント エディターから、 構成 タブをクリックします。
-
ハイライト構成テキスト領域を見つけて、有効な 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 または構成画面には反映されません。
検索ページでソートを構成するために、ソート ウィジェットとブループリントの両方を使用しないでください。 ソート ウィジェットのソートと検索ブループリントのソート構成を組み合わせた場合、一貫した動作は保証されません。
ブループリントにソートを追加するには、
-
ブループリント エディターから、 構成 タブをクリックします。
-
ソート構成テキスト領域を見つけて、有効な JSON を入力します。
{ "sorts": [ { "title_sortable": "desc" } ] }
パラメーター構成
次の属性から新しいテンプレート変数を宣言できます。
- 検索コンテキスト属性。
- ヘッドレス検索リクエスト属性 プレフィックスは
search.experiencesです (例:search.experiences.my.attribute)。
たとえば、カスタム フィルター ウィジェットをウィジェット テンプレートおよびブループリントと組み合わせて、エンド ユーザーが未公開コンテンツと下書きコンテンツの間で検索結果を切り替えることができるようにすることができます。
この例では、属性の値が trueの場合に、検索結果から Web コンテンツを除外する新しい検索コンテキスト属性を追加します。
-
新しいブループリントにパラメータ設定を追加します。 設定 タブに移動し、パラメータ設定テキスト ボックスを見つけます。 追加
{ "parameters": { "exclude.journal_articles": { "type": "String" } } } -
ブループリントにカスタム要素を追加する: クエリ ビルダー タブに移動し、カスタム 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" } } -
検索コンテキスト属性を追加します。 テスト目的で、 プレビュー サイドバーでこれを行うことができます。
-
プレビューをクリックします。 歯車アイコン (
) をクリックして、ブループリント プレビュー検索に検索コンテキスト属性を追加します。 属性のキー/値のペアを入力します: exclude.journal_articles/true -
次に、 完了をクリックします。
チェックポイント: Web コンテンツ記事 (必要に応じて追加) を返すことが予想される検索を実行し、記事が返されないことを確認します。 属性設定を再度開き、値を falseに設定します。 プレビュー検索に Web コンテンツが含まれていることを確認します。
- 低レベル検索オプション ウィジェットを使用して、検索ページで検索コンテキスト属性を設定できます。
- ヘッドレス検索リクエストにカスタム属性を追加できます。 詳細については、 カスタム検索リクエスト属性 を参照してください。
詳細設定
これはめったに必要のない高度な機能です。
高度な設定では、
- 同一のキーワード フィールド値を持つ結果 を、
折りたたみパラメータを使用して折りたたみます。 - ブループリントの応答で、
フィールドパラメータを使用して、インデックスが付けられた フィールドが 返されるように設定します。 Liferay DXP 2024.Q4/Portal GA129 以前では、多くのフィールドはデフォルトで 保存 されていました。 これらのバージョンでは、stored_fieldsパラメータを使用します。 - 特定のフィールドを削除するか、 応答からソース フィールド を除外します。
たとえば、詳細設定では、検索リクエストパラメータとして ソースインクルードを追加し、 を除外します。 Elasticsearch の _source フィールドには、インデックス要求に渡された保存されたドキュメント本体が含まれています。 このフィールド自体はインデックス化されていません。 ブループリントの高度な構成では、構成内の ソース JSON 要素を使用して、含めるフィールドまたは除外するフィールドを指定して、フィールドを整理できます。 機能が重複しており、低レベル検索オプション ウィジェットの 返されるフィールド 構成と競合する可能性があるため、両方のアプローチを同時に使用しないでください。 ブループリントのソースフィールドを設定するには、
- ブループリント エディターから、 構成 タブをクリックします。
- 詳細構成テキスト領域を見つけて、必要な
除外と包含を入力します。 ワイルドカードが許可されます。
{
"source":{
"excludes":[
"<fieldName1>",
"<fieldName2>"
],
"fetchSource":true,
"includes":[
"<fieldName3>",
"<fieldName4>"
]
}
}
コントロールパネルで検索ブループリントを構成する
検索ブループリントのほとんどの構成は、ブループリント アプリケーションと検索ページ自体に直接記載されています。 ただし、検索ブループリントで地理位置情報機能をサポートするサービスを有効にするシステム/インスタンス構成が 2 つあります。
両方の構成エントリは、コントロール パネル → システム/インスタンス設定の検索エクスペリエンス カテゴリにあります。

Ipstack は、ユーザーの IP アドレスに基づいて地理位置情報を提供します。
| Ipstack の設定 | デフォルト値 | 説明 |
|---|---|---|
| 有効 | False | ipstack サービスを有効にするには、ボックスをオンにします。 |
| API キー | なし | サービスを有効にするには、ipstack.com から API キーを取得する必要があります。 |
| API の URL | http://api.ipstack.com | サービスの URL を提供します。 |
| キャッシュのタイムアウト時間 | 604800 | キャッシュされたデータの有効期限が切れて API が再呼び出されるまでの時間 (ミリ秒) を設定します。 |
OpenWeatherMap は、ipstack と組み合わせて使用され、ユーザーの位置に基づいて天気情報を提供します。 Search Blueprints でこれを使用するには、ipstack も有効にする必要があります。
| Ipstack の設定 | デフォルト値 | 説明 |
|---|---|---|
| 有効 | False | OpenWeatherMap サービスを有効にするには、チェックボックスをオンにします。 |
| API キー | なし | サービスを有効にするには、openweathermap.org から API キーを取得する必要があります。 |
| API の URL | http://api.openweathermap.org/data/2.5/weather | サービスの URL を提供します。 |
| キャッシュのタイムアウト時間 | 604800 | キャッシュされたデータの有効期限が切れて API が再呼び出されるまでの時間 (ミリ秒) を設定します。 |
| 単位 | 統計情報 | 天気データの単位システムを設定します。インペリアル、メートル法、または標準を選択します。 |