すべてのプロダクト
Search
ドキュメントセンター

OpenSearch:A/B テスト

最終更新日:Apr 01, 2026

制御された実験なしでは、クエリ分析やランキング変更が検索品質を向上させるのか、それとも低下させるのかを判断することはできません。A/B テストを使用すると、ライブ検索トラフィックの一部をテスト構成 (異なるクエリ分析ルール、基本ソート、または高度ソート) にルーティングし、変更を適用する前にメトリックをベースラインと比較できます。これにより、テストされていない構成がユーザーの検索エクスペリエンスを低下させるのを防ぎます。

仕組み

検索クエリをテストグループに割り当てるには、abtest パラメーターを指定してクエリを送信します。バックエンドは flow_divider の値をハッシュ化し、クエリを一貫してルーティングします。つまり、同じ flow_divider の値は常に同じテストにマッピングされます。この一貫性は不可欠です。ユーザーがクエリごとに異なるテストグループに割り当てられた場合、結果は構成変更の実際の影響ではなく、ノイズを反映することになります。flow_divider をユーザーのメンバー ID に設定することで、同じユーザーが実験期間中常に同じテストグループに割り当てられるようにします。

abtest パラメーターを省略したすべてのクエリは、引き続きデフォルトのオンライン構成を使用します。

テスト可能な項目

テストグループ内の各テストは、次のコンポーネントの 1 つ以上をカバーできます。

コンポーネント説明
クエリ分析受信検索クエリに適用されるクエリ解析および分析ルール
大まかなソート候補結果の取得に使用される第 1 段階のランキングポリシー
高度ソート候補結果に適用される第 2 段階の再ランキングポリシー
カテゴリ予測プロダクトカテゴリの予測に使用されるモデル

前提条件

開始する前に、以下を確認してください。

  • 少なくとも 1 つの公開済みのクエリ分析ルール、基本ソート、または高度ソート構成を持つ OpenSearch アプリケーション

  • (推奨) アプリケーションで データ収集 V2.0 が有効になっていること。クリック行動データにより、テストメトリックの品質が向上します

A/B テストの作成と実行

ステップ 1: テストグループの作成

  1. OpenSearch コンソールにログインします。左側のナビゲーションウィンドウで、[機能拡張] > [A/B テスト] の順に選択します。

  2. A/B テストページで、[作成] をクリックします。

    image

  3. [テスト グループ名] を入力してください。この名前は表示用のみです。実験を明確に識別できるものを選択してください。名前の長さは30文字を超えてはいけません。

    image

  4. [次へ] をクリックして、テストの設定 ステップに進みます。

ステップ 2: テストグループへのテストの追加

各テストグループには最大 20 個のテストを含めることができ、同時にオンラインで実行できるのは最大 10 個です。

  1. [テストの作成] をクリックします。

    image

  2. テスト名を入力します。名前は 30 文字を超えることはできません。

    image

  3. テストのクエリ分析、基本ソート、および高度ソートを設定します。公開済みの構成のみ選択可能です。編集中である構成は、意図しない変更がテスト結果に影響を与えるのを防ぐために除外されます。ソートポリシーを選択した後、それを変更することはできません。

    • クエリ分析タイプとルール」列で、「カスタム」を選択して作成したルールを使用するか、または「デフォルトのオンライン設定を使用」を選択して現在の本番ルールを使用します。

    • 基本ソートおよび高度ソートについても、[並べ替えポリシータイプとポリシー] 列で同じオプションが適用されます。

    image

  4. このテストのトラフィック割合を設定します。最小値は 1% です。グループ内のすべてのアクティブなテストの合計トラフィック割合は 100% を超えることはできません。

    image

  5. 必要に応じて、追加のテストを作成するために繰り返します。

ステップ 3: テストの完了と開始

  1. 次へ」をクリックします。「完了」ステップで「テストグループが作成されました」と確認された場合、「完了」をクリックして A/B テストページに戻ります。新しいテストグループは、一覧にPendingのステータスで表示されます。

    image

    image

  2. テストグループの [操作] 列で、[テストを開始] をクリックします。ステータスが テスト中 に変わります。

    image

ステップ 4: 検索クエリへの abtest パラメーターの追加

テストグループが実行中になったら、実験を通してルーティングしたい検索クエリに abtest パラメーターを含めます。

/v3/openapi/apps/160029126/search?query=query=default:'Shenzhen'&&config=start:0,hit:10,format:fulljson&abtest=scene_tag:test_1,flow_divider:123456

abtest パラメーターは 2 つのサブパラメーターを取ります。

サブパラメーター必須説明
scene_tagはいOpenSearch コンソールに入力されたテストグループの名前
flow_dividerはいバックエンドがクエリを特定のテストに割り当てるためにハッシュ化する値。同じユーザーがすべてのクエリで常に同じテストグループに割り当てられるように、これをユーザーのメンバー ID に設定します。

エンコード要件:

  • SDK: scene_tag または flow_divider にスペースまたは句読点が含まれている場合は、SDK メソッドを呼び出す前に値を URL エンコードしてください。スペースや句読点を含まない値はそのまま渡すことができます。

  • API: 両方のサブパラメーターの値を常に URL エンコードしてください。パラメーターはこの形式で渡します。

    abtest=urlencode(scene_tag:urlencode($scene),flow_divider:urlencode($value))

詳細については、「A/B テストに関するよくある質問」をご参照ください。

テストグループとテストの管理

テストグループの管理

テストグループを作成した後、A/B Test ページから管理します。

image
操作利用可能な条件
テストの開始テストグループのステータスが 保留中 または 停止済み
テストの停止テストグループのステータスが テスト中
テストグループの削除A/B テストページから利用可能

テストの管理

個々のテストを表示および管理するには、テストグループの [アクション] 列の [詳細] をクリックします。

image

「テストグループの詳細」ページの[テストリスト] セクションには、各テストの名前、クエリ分析のタイプとルール、ソートポリシーのタイプとポリシー、およびトラフィックの割合が表示されます。

image

テストごとの利用可能な操作:

  • [Edit]:名前、構成、またはトラフィック割合を更新します。

  • [Delete]:テストを削除します。その構成は破棄され、すぐにオンラインでの効果が停止します。

  • [Configure whitelist]:特定の flow_divider 値をテストに追加し、その値からのクエリが常にこのテストにルーティングされるようにします。これにより、テストの検索効果を表示できます。

    image

テスト結果の表示

テストグループの詳細

[詳細]」を「[操作]」列でクリックして、テストグループの詳細ページを開きます。ここでは、以下を確認できます:

  • 行動データステータス — メトリックに供給される行動データの品質:

    ステータス説明
    未アクティブ化アプリケーションの行動データがアップロードされていません。詳細については、「データ収集 V2.0」をご参照ください。
    データなしでアクティブ化済みデータ収集は有効になっていますが、まだデータが受信されていません。
    異常 (利用不可)行動データが品質チェックに失敗し、信頼できません。
  • テストグループステータス — 実験の現在の状態:

    ステータス説明
    Pendingテストグループのテストは開始または停止できます。
    Testingテストが実行中です。開始日からの経過日数が表示されます。
    Stoppedテストが停止しています。累積テスト時間は、実際にテストが実行されていた日数のみをカウントします。

データ統計

テストグループの詳細ページの[データ統計]セクションで、テスト間でメトリックを比較します。または、左側のナビゲーションウィンドウで[レポート統計] > [A/B テスト]に移動します。

メトリックはテスト開始の翌日 (08:00 以降に表示可能) に利用可能になります。テストを停止した場合でも、それまでに収集されたデータは翌日も利用可能です。

結論を出す前に、少なくとも数日間は待ってください。初期のデータは、サンプルサイズが小さいことや曜日効果により不安定になる可能性があります。変更が一貫して優れているかどうかを判断するには、最新の値だけでなく、時間の経過に伴うメトリックの傾向を使用してください。

メトリックの種類」ドロップダウンリストから表示するメトリックを選択します。「テスト」ドロップダウンリストから比較対象のテストを複数選択します。コアメトリックは折れ線グラフで表示され、デフォルトでは直近1日のデータが表示されます。

利用可能なメトリック:

メトリック測定対象
ページビュー (PV)表示された検索結果ページの合計数
ユーザービュー (UV)検索を実行したユニークユーザー数
ゼロ結果率結果を返さなかったクエリの割合
ユーザーあたりの平均 PVユーザーあたりの平均表示ページ数
曝露時間表示された検索結果の合計数
検索クエリ実行された検索の合計数
ユーザーあたりの平均検索クエリ数ユーザーあたりの平均検索数

完全なメトリックの定義および A/B テスト レポートについては、「A/B テスト レポート」をご参照ください。

実践例

この例では、Eコマースプロダクト検索のソート式で A/B テストを実行する方法を示します。

シナリオ:ご利用のアプリケーションは、次の 2 種類のトラフィックを処理します。

  • ユーザー検索トラフィック — キーワードで検索するユーザーからのクエリで、価格でソートされます。query=config=format:fulljson&&query=default:'infant formula'&&sort=price

  • 内部サービストラフィック — 内部サービスからのクエリで、タイムスタンプでソートされます。query=config=format:fulljson&&query=cat_id:'1'|'2'|'3'&&sort=timestamp

メンバー ID を使用してユーザーを一貫して割り当てながら、ユーザー検索トラフィックのみで複数のソート式をテストしたいとします。

手順:

  1. user_search という名前のテストグループを作成します。

    image

  2. ユーザー検索クエリに abtest パラメーターを追加し、scene_taguser_search に、flow_divider をユーザーのメンバー ID に設定します。Java SDK の使用 (PHP SDK の使用法も同様):ダウンロード:aliyun-sdk-opensearch-3.4.1 (Java) および opensearch-sdk-php-3.3.0 (PHP) API の使用:scene_tagflow_divider の値を個別に URL エンコードし、その後、完全なパラメーター値を URL エンコードします。クエリを構築します (scene_tagflow_divider の値は URL エンコードされています)。

    query=config=format:fulljson&&query=default:'infant formula'&&sort=-price&abtest=scene_tag:user_search,flow_divider:%e5%bc%a0%e4%b8%89

    次に、完全なクエリパラメーター値を URL エンコードします。

    query=config%3dformat%3afulljson&&query%3ddefault%3a%27%e5%ae%9d%e5%ae%9d%e5%a5%b6%e7%b2%8

    image

  3. テストグループを開始します。ユーザーからの検索クエリは、メンバー ID に基づいて構成されたテストにルーティングされます。

ビジネス運用レポート

A/B テストレポートを表示するには、左側のナビゲーションウィンドウで [機能拡張] > [A/B テスト] に移動し、テストを見つけ、[操作] 列の [統計レポート] をクリックします。

image

または、左側のナビゲーションウィンドウで、[レポート統計] > [A/Bテストレポート] に移動します。

image

レポートで利用可能なメトリックの完全な説明については、「A/B テスト レポート」をご参照ください。

次のステップ