検索結果をブーストする

検索リクエストでブースト条件を指定して、検索結果内の特定のドキュメントを昇格または降格させることができます。ドキュメントが指定された条件を満たすと、ブースト値が適用され、結果がそれに応じて並べ替えられます。カスタム数値とタイムスタンプ値を指定して、人気度や鮮度などのパラメータに基づいて結果を並べ替えることもできます。

検索リクエストのブースト仕様は、サービス提供構成に適用されるブースト コントロールとは異なります。boostSpec フィールドのブースト仕様は、サービス提供構成の boostAction フィールドで定義されたブースト コントロールをオーバーライドします。ブースト制御の詳細については、ブースト制御についてをご覧ください。

このページでは、次のタイプのブースト仕様について説明します。

これらのブースト仕様は、構造化データ、非構造化データ、ウェブサイト データを含むクエリ メディア検索アプリと汎用検索アプリに適用できます。 これらの仕様は、医療検索アプリには適用されません。

固定条件でブーストする

条件を満たしているかどうかに基づいて結果を一定の値でブーストするには、次の操作を行います。

  1. servingConfigs.search リクエストを送信するときに、boostSpec フィールドにブースト仕様を指定します。

    {
      "boostSpec": {
        "conditionBoostSpecs": {
          "condition": "BOOST_CONDITION",
          "boost": BOOST_VALUE
        }
      }
    }
    

    この仕様には、次のパラメータが含まれています。

    • BOOST_CONDITION: ブーストを適用するドキュメントを選択するテキスト フィルタ式。フィルタはブール値に評価される必要があります。
    • BOOST_VALUE: -1 から 1 の浮動小数点数。値が負の場合、結果は降格されます(結果の下位に表示されます)。値が正の場合、結果は昇格されます(結果の上位に表示されます)。

使用例

データストアにホテルとその評価に関するデータが含まれているとします。3 つ星以上のホテルを優先的に表示したいと思います。評価は star_rating 数値フィールドで使用できます。boostSpecconditionstar_rating >= 3.0 に指定し、ブースト値を 0.7 に設定すると、star_rating が 3.0 以上のすべてのホテルを同等の値でブーストできます。

{
  "boostSpec": {
    "conditionBoostSpecs": {
      "condition": "star_rating>=3.0",
      "boost": 0.7
    }
  }
}

カスタム数値属性を使用してブーストする

カスタム数値属性に基づいて結果を区分的線形にブーストするには、コントロール ポイントとそれに対応するブースト値を指定します。

カスタム数値属性を使用してブースト仕様を指定するには、次の操作を行います。

  1. 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: 特定のコントロール ポイントのカスタム属性にマッピングされたブースト量。

検索結果内のドキュメントが指定された条件を満たすと、次のようにブースト量が適用されます。

属性の値 ブースト量
最初のコントロール ポイントより小さい 最初のコントロール ポイントのブースト量と同じ
コントロール ポイントに等しい マッピングされたブースト量と同じ
コントロール ポイントの間 線形補間によって計算されます。
最後のコントロール ポイントより大きい 最後のコントロール ポイントのブースト量と同じ

使用例

データストアにホテルとその評価に関するデータが含まれているとします。星評価に比例してホテルの検索結果をブーストしたいと思います。ブーストの仕様は次のように定義できます。

{
  "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

鮮度に応じてブーストする

コントロール ポイントとそれに対応するブースト値を指定して、日時属性に基づいて結果を区分的線形にブーストできます。

カスタム日時属性を使用してブースト仕様を指定するには、次の操作を行います。

  1. 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: 特定のコントロール ポイントのカスタム日時属性にマッピングされたブースト量。

検索結果内のドキュメントが指定された条件を満たすと、次のようにブースト量が適用されます。

期間値 ブースト量
最初のコントロール ポイントより小さい 最初のコントロール ポイントのブースト量と同じ
指定されたコントロール ポイントと同じ マッピングされたブースト量と同じ
コントロール ポイントの間 線形補間によって計算されます
最後のコントロール ポイントより大きい 最後のコントロール ポイントのブースト量と同じ

カスタム日時属性を使用したユースケースの例

データストアに、各ドキュメントに公開日が設定された構造化データが含まれているとします。検索結果の更新頻度に比例して検索結果をブーストしたいと思います。ブーストの仕様は次のように定義できます。

{
  "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 検索での構造化データの仕組みをご覧ください。

カスタム構造化データ属性を追加してインデックスを拡充するには、データストア スキーマにカスタム構造化データ属性を追加するをご覧ください。

関連性フィルタでブースト量を調整する

検索結果のランキングに影響する要素(キーワードの一致、コンテキストの一致、関連性など)に加えて、ブースト条件も検索結果のランキングに大きく影響します。そのため、関連性フィルタで 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 フィールドにブースト仕様を指定して検索リクエストを作成します。
  • ブーストが汎用検索アプリの検索品質に与える影響を把握するために、検索品質を評価します。詳細については、検索品質を評価するをご覧ください。