検索リクエストでブースト条件を指定すると、検索結果で特定のドキュメントを昇格または降格させることができます。ドキュメントが指定された条件を満たすと、ブースト値が適用され、結果がそれに応じて並べ替えられます。カスタム数値とタイムスタンプ値を指定して、人気度や鮮度などのパラメータに基づいて結果を並べ替えることもできます。
検索リクエストのブースト仕様は、サービス提供構成に適用されるブースト コントロールとは異なります。ブースト コントロールの詳細については、ブースト コントロールについてをご覧ください。
このページでは、次のタイプのブースト仕様について説明します。
これらのブースト仕様は、構造化データ、非構造化データ、ウェブサイト データを含むクエリ メディア検索アプリとカスタム検索アプリに適用できます。 これらの仕様は、医療検索アプリには適用されません。
固定条件でブーストする
条件を満たすかどうかに基づいて結果を一定量ブーストするには、次の操作を行います。
- servingConfigs.searchリクエストを送信するときに、- boostSpecフィールドでブースト仕様を指定します。- { "boostSpec": { "conditionBoostSpecs": { "condition": "BOOST_CONDITION", "boost": BOOST_VALUE } } }- 仕様には次のパラメータが含まれています。 - BOOST_CONDITION: ブーストを適用するドキュメントを選択するためのテキスト フィルタ式。フィルタはブール値に評価される必要があります。
- BOOST_VALUE: [-1,1] の範囲の浮動小数点数。値が負の場合、結果は降格されます(結果の下位に表示されます)。値が正の場合、結果は昇格されます(結果の上位に表示されます)。
 
使用例
データストアにホテルとその評価に関するデータが含まれているとします。3 つ星以上のホテルを優先的に表示したいと思います。評価は star_rating 数値フィールドで使用できます。boostSpec で condition を star_rating >= 3.0 として指定し、ブースト値を 0.7 に設定すると、star_rating が 3.0 以上のすべてのホテルが同じ量だけブーストされます。
{
  "boostSpec": {
    "conditionBoostSpecs": {
      "condition": "star_rating>=3.0",
      "boost": 0.7
    }
  }
}
カスタム数値属性を使用してブーストする
コントロール ポイントと対応するブースト値を指定することで、区分的線形方式でカスタム数値属性に基づいて結果をブーストできます。
カスタム数値属性を使用してブースト仕様を指定するには、次の操作を行います。
- servingConfigs.searchリクエストを送信するときに、- boostSpecフィールドでブースト仕様を指定します。- { "boostSpec": { "conditionBoostSpecs": { "condition": "BOOST_CONDITION", "boostControlSpec": { "attributeType": "NUMERICAL", "interpolationType": "LINEAR", "fieldName": "CUSTOM_ATTRIBUTE_FIELD_NAME", "controlPoints": [ { "attributeValue": "CUSTOM_ATTRIBUTE_VALUE_1", "boostAmount": BOOST_AMOUNT_1 }, { "attributeValue": "CUSTOM_ATTRIBUTE_VALUE_2", "boostAmount": BOOST_AMOUNT_2 } ] } } } }- 仕様には次のパラメータが含まれています。 - BOOST_CONDITION: ブーストを適用するドキュメントを選択するためのテキスト フィルタ式。フィルタはブール値に評価される必要があります。
- CUSTOM_ATTRIBUTE_FIELD_NAME: 値によってブースト量が決まるカスタム数値属性のフィールド名。
- CUSTOM_ATTRIBUTE_VALUE: 文字列データ型の特定の制御点のカスタム属性の数値。たとえば、- "3.3"や- "12"です。詳細については、ControlPoint をご覧ください。
- BOOST_AMOUNT: [-1,1] の範囲の浮動小数点数。値が負の場合、結果は降格されます(結果の下位に表示されます)。値が正の場合、結果は昇格されます(結果の上位に表示されます)。特定のコントロール ポイントのカスタム属性にマッピングされたブースト量を示します。
 
検索結果内のドキュメントが指定された条件を満たすと、次のようにブースト量が適用されます。
| 属性の値 | ブースト量 | 
|---|---|
| 最初のコントロール ポイントより小さい | 最初のコントロール ポイントのブースト量と同じ | 
| コントロール ポイントに等しい | マッピングされたブースト量と同じ | 
| コントロール ポイント間 | 線形補間で計算されます | 
| 最後のコントロール ポイントより大きい | 最後のコントロール ポイントのブースト量と同じ | 
使用例
データストアにホテルとその評価に関するデータが含まれているとします。星評価に比例してホテルの検索結果をブーストしたいと思います。ブースト仕様は次のように定義できます。
{
  "boostSpec": {
    "conditionBoostSpecs": {
        "condition": "star_rating >= 3.0",
        "boostControlSpec": {
          "attributeType": "NUMERICAL",
          "interpolationType": "LINEAR",
          "fieldName": "star_rating",
          "controlPoints": [
            {
              "attributeValue": "3.5",
              "boostAmount": 0.25
            },
            {
              "attributeValue": "4.0",
              "boostAmount": 0.30
            },
            {
              "attributeValue": "4.5",
              "boostAmount": 0.32
            }
          ]
        }
    }
  }
}
このシナリオでは、検索結果は次のようにブーストされます。
| 評価 | ブースト量 | 
|---|---|
| 3.5 以下 | 0.25 | 
| 3.5~4.0 の間 | 0.25~0.30 の間(線形補間を使用して計算) | 
| 4.0 と等しい | 0.30 | 
| 4.0~4.5 の間 | 0.30~0.32 の間(線形補間を使用して計算) | 
| 4.5 以上 | 0.32 | 
鮮度に応じてブーストする
コントロール ポイントと対応するブースト値を指定することで、区分的線形方式で日時属性に基づいて結果をブーストできます。
カスタム日時属性を使用してブースト仕様を指定するには、次の操作を行います。
- servingConfigs.searchリクエストを送信するときに、- boostSpecフィールドでブースト仕様を指定します。- { "boostSpec": { "conditionBoostSpecs": { "condition": "BOOST_CONDITION", "boostControlSpec": { "fieldName": "DATETIME_FIELD_NAME", "attributeType": "FRESHNESS", "interpolationType": "LINEAR", "controlPoints": [ { "attributeValue": "DURATION_VALUE_1", "boostAmount": BOOST_AMOUNT_1 }, { "attributeValue": "DURATION_VALUE_2", "boostAmount": BOOST_AMOUNT_2 } ] } } } }- 仕様には次のパラメータが含まれています。 - BOOST_CONDITION: ブーストを適用するドキュメントを選択するためのテキスト フィルタ式。フィルタはブール値に評価される必要があります。
- DATETIME_FIELD_NAME: カスタム- DATETIME属性のフィールド名(公開日、最終更新日など)、または Google が推測した事前定義属性(- datePublishedなど)。
- DURATION_VALUE: ドキュメントの鮮度を決定する- dayTimeDurationデータ型の期間値。これは、検索が実行された日時とドキュメントのカスタム日時属性の日時の間の期間として計算されます。期間値は、- [nD][T[nH][nM][nS]]のパターンで ISO 8601 形式に従って指定する必要があります。たとえば、2024 年 1 月 1 日から 2024 年 3 月 1 日までの期間は- 59Dと表すことができます。同様に、2 日半の期間は- 2DT12Hと表すことができます。詳細については、ControlPoint をご覧ください。
- BOOST_AMOUNT: [-1,1] の範囲の浮動小数点数。値が負の場合、結果は降格されます(結果の下位に表示されます)。値が正の場合、結果は昇格されます(結果の上位に表示されます)。特定のコントロール ポイントのカスタム日時属性にマッピングされたブースト量を指定します。
 
検索結果内のドキュメントが指定された条件を満たすと、次のようにブースト量が適用されます。
| 期間値 | ブースト量 | 
|---|---|
| 最初のコントロール ポイントより小さい | 最初のコントロール ポイントのブースト量と同じ | 
| 指定されたコントロール ポイントに等しい | マッピングされたブースト量と同じ | 
| コントロール ポイント間 | 線形補間によって計算されます | 
| 最後のコントロール ポイントより大きい | 最後のコントロール ポイントのブースト量と同じ | 
カスタム日時属性を使用したユースケースの例
データストアに、各ドキュメントに公開日が含まれる構造化データが含まれているとします。検索結果の更新頻度に比例して検索結果をブーストしたいと思います。ブースト仕様は次のように定義できます。
{
  "boostSpec": {
    "conditionBoostSpecs": {
        "condition": true,
        "boostControlSpec": {
          "fieldName": "publication_date",
          "attributeType": "FRESHNESS",
          "interpolationType": "LINEAR",
          "controlPoints": [
            {
              "attributeValue": "7D",
              "boostAmount": 0.40
            },
            {
              "attributeValue": "30D",
              "boostAmount": 0.37
            },
            {
              "attributeValue": "60D",
              "boostAmount": 0.32
            },
            {
              "attributeValue": "90D",
              "boostAmount": 0
            }
          ]
        }
    }
  }
}
このシナリオでは、検索結果は次のようにブーストされます。
| 鮮度 | ブースト量 | 
|---|---|
| 7 日以下 | 0.40 | 
| 7~30 日 | 0.40~0.37 の間(線形補間を使用して計算) | 
| 30 日 | 0.37 | 
| 30~60 日の間 | 0.37~0.32 の間(線形補間を使用して計算) | 
| 60 日間 | 0.32 | 
| 60~90 日の間 | 0.32~0.0 の間(線形補間を使用して計算) | 
| 90 日以上 | 0.0 | 
Google が推測したページの日付を使用したユースケースの例
ウェブサイト データストア内のウェブページをクロールする際、Google はコンテンツに適用されるプロパティを使用してページデータを推定します。 Vertex AI Search は、これらの推定されたページデータ プロパティをスキーマに追加します。この推定データには、次のような事前定義された日付プロパティが含まれます。
- datePublished: ページが最初に公開された日時
- dateModified: ページが最後に変更された日時
これらのプロパティは自動的にインデックス登録されます。これらの日付プロパティは、スキーマに追加しなくても、直接使用して検索を拡充できます。
これらの事前定義されたプロパティを使用して、ページをブーストできます。たとえば、次のように fieldName フィールドを pageModified に設定して、ブースト仕様を定義できます。
{
  "boostSpec": {
    "conditionBoostSpecs": {
        "condition": true,
        "boostControlSpec": {
          "fieldName": "dateModified",
          "attributeType": "FRESHNESS",
          "interpolationType": "LINEAR",
          "controlPoints": [
            {
              "attributeValue": "7D",
              "boostAmount": 0.35
            },
            {
              "attributeValue": "30D",
              "boostAmount": 0.30
            }
          ]
        }
    }
  }
}
Google はこれらの日付をベスト エフォート ベースで推定しますが、推定された日付は実際の日付と一致しない場合があります。これらのフィールドは、Google の信頼度が高い場合にのみ入力されます。これらの日付値がない場合、これらのフィールドは null 可能性になります。
ベスト プラクティスとして、ドメイン所有者またはウェブサイト管理者がウェブページのこれらのプロパティを更新し、更新後に Vertex AI Search ウェブサイト データストアを手動で更新することをおすすめします。詳しくは、ウェブページの最適な日付を Google 検索に知らせるにはのブログ投稿と、Google 検索での構造化データの仕組みをご覧ください。
インデックスを拡充するためにカスタム構造化データ属性を追加するには、データストア スキーマにカスタム構造化データ属性を追加するをご覧ください。
ブースト量の調整
キーワードの一致、コンテキストの一致、関連性など、結果のランキングに影響する要因に加えて、ブースト条件は結果のランキングに大きな影響を与えます。そのため、ブースト量を慎重に調整する必要があります。最初は 0.1 以下の低い正確なブースト量から始め、検索結果に応じて調整することをおすすめします。
関連性フィルタを使用したユースケースの例
関連性フィルタで boostSpec フィールドを使用する場合は特に、ブースト量の調整が重要になります。関連性フィルタの詳細については、ドキュメント レベルの関連性で検索をフィルタするをご覧ください。
公開日が異なる複数のドキュメントがあるとします。特定のクエリについて、次の表は、ブースト条件や関連性フィルタを適用していない絶対ランキングを表し、クエリ対象ドキュメントの関連性を示しています。
| ドキュメント | 公開日 | 関連性 | ランキング | 
|---|---|---|---|
| A | 2024 年 2 月 1 日 | 高 | #1 | 
| B | 2024 年 3 月 1 日 | 高 | #2 | 
| C | 2024 年 4 月 1 日 | 最低 | #3 | 
| D | 2024 年 5 月 1 日 | 中 | #4 | 
| E | 2024 年 6 月 1 日 | 低 | #5 | 
2024 年 6 月 6 日に、検索リクエストに次の検索条件を追加します。
- 関連性フィルタが LOWに設定されています。
- 過去 31 日間に公開されたドキュメントをブースト値 0.7 でブーストし、1 週間以上経過しているが 60 日未満のドキュメントをブースト値 0.6 でブーストするなどのブースト値。
検索結果では、まず関連性で結果がフィルタされ、次にブースト量が適用されます。そのため、適用された条件によって、結果のページのランキングは次のように変更されます。
| ドキュメント | 公開日 | 関連性 | ランキング | 
|---|---|---|---|
| E | 2024 年 6 月 1 日 | 低 | #1 | 
| D | 2024 年 5 月 1 日 | 中 | #2 | 
| A | 2024 年 2 月 1 日 | 高 | #3 | 
| B | 2024 年 3 月 1 日 | 高 | #4 | 
関連性フィルタにより、関連性が最も低い結果が除外されます。 クエリとの関連性が低いドキュメントが、大きなブースト量でブーストされているため、上位の結果としてランク付けされます。関連性の高い結果ほどランクが低くなります。
そのため、最初は低い正確な値からブースト量を開始し、検索結果に応じて値を調整することをおすすめします。この例では、ブースト量を 0.1 以下から始めると、より関連性の高い結果が上位に表示される可能性があります。
次のステップ
- boostSpecフィールドにブースト仕様を指定して検索リクエストを作成します。
- ブーストがカスタム検索アプリの検索品質に与える影響を把握するために、検索品質を評価します。詳細については、検索品質を評価するをご覧ください。