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

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

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

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

各設定フィールドは、JSON文字列を受け入れる単一のテキストエリアで構成されています。

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

ブループリントを作成する際、コレクションプロバイダとして有効にすることで、フィルタリングした結果を他のLiferayアプリケーションと共有することができます。

コレクションプロバイダを有効または無効にします。

この設定は、設計図の設定タブからいつでも切り替えることができます。

  1. 設計図を作成する。

  2. 設定 タブをクリックします。

  3. コレクションプロバイダーとして有効にする オプションを切り替えます。

設定タブでコレクションプロバイダを有効または無効にします。

Liferay DXP 2025.Q3 および Q4 バージョンでは、LPS-129412 リリース機能フラグ を有効にします。

集約構成

検索ブループリントで 集計 を設定します。 集計処理は、クエリの結果を取り込み、データを論理的なセットにグループ化します。 集計を組み合わせることで、複雑なデータ要約を作成できます。

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

警告
  • 集計は設定可能で、検索結果に返されますが、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. ネストされたコンテキストでナビゲートするパスを指定するための<0>ネストされた集約を追加する。
  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. fieldsパラメータを使用して、ブループリントのレスポンスでどのインデックス付きフィールドを返すかを設定します。 Liferay DXP 2024.Q4/Portal GA129以前では、多くのフィールドがデフォルトで保存されていました。 これらのバージョンでは、 stored_fields パラメータを使用します。
  3. 特定のフィールドを削除するか、 ソースフィールド をレスポンスから除外します。

例えば、詳細設定では、検索リクエストパラメータとして ソースのインクルードと の除外を追加します。 Elasticsearch の _source フィールドには、インデックス要求に渡された保存済みドキュメント本文が含まれています。 このフィールド自体はインデックス化されていません。 ブループリントの高度な設定では、設定内の 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 と組み合わせて使用し、ユーザーの位置情報に基づいて天気情報を提供します。 検索ブループリントでこれを使用するには、ipstackも有効にする必要があります。

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