OpenSearch で様々なアルゴリズムを使用およびデバッグするのに役立つよう、OpenSearch は A/B テスト機能を提供しています。オンラインビジネスで機能を使用する前に、A/B テストを実行して、指定されたテストグループに特定の割合のクエリをルーティングすることで機能をテストできます。これにより、テストされていない機能を使用するシナリオで、オンラインビジネスへの悪影響を防ぐことができます。A/B テスト機能を使用すると、クエリ分析、ラフソート、およびファインソートの効果をテストできます。
A/B テスト機能を使用する
ステップ 1: A/B テストを設定する
より包括的なテストメトリクスを取得するために、A/B テストを設定する前に、クリック行動データの収集機能を有効にすることをお勧めします。A/B テスト機能を初めて使用する場合は、次の 4 つの手順を実行して A/B テストを設定する必要があります。
1. テストグループの作成ページに移動します。
OpenSearch コンソールにログインします。左側のナビゲーションペインで、機能拡張 > A/B テストを選択します。A/B テストページで、作成をクリックします。

2. テストグループを作成します。
テストグループを作成して、クエリ分析、ラフソート、ファインソート、およびカテゴリ予測の効果をテストできます。テストグループ名: 作成するテストグループの名前。名前は表示目的のみです。必要に応じて名前を指定できます。テストグループの名前は 30 文字を超えることはできません。
3. テストを作成します。
テストグループの名前を指定して次へをクリックすると、テストの設定手順でテストの作成をクリックしてテストを作成できます。1 つのテストグループに最大 20 個のテストを作成できます。ただし、同時に有効にできるオンライントテストは最大 10 個です。
3.1 作成するテストの名前を指定します。テスト名はカスタマイズできます。テストの名前は 30 文字を超えることはできません。
3.2 テストを設定します。
テストするクエリ分析、ラフソート、およびファインソートを指定できます。既存のクエリ分析ルール、ラフソート、およびファインソートのみを選択できます。
クエリ分析タイプとルール列でテストのクエリ分析を指定する場合:
ドロップダウンリストからカスタムを選択した場合は、アプリケーション用に作成したクエリ分析ルールを選択する必要があります。
ドロップダウンリストからデフォルトのオンライン設定を使用を選択した場合は、テストにデフォルトのオンライン設定が使用されます。
上記のロジックは、ソートポリシータイプとポリシー列でテストのラフソートとファインソートを指定する場合にも適用されます。
設定中のソートポリシーを選択したが、誤ってソートポリシーを変更した場合、A/B テストの効果に影響を与える可能性があります。この問題を解決するために、公開されているソートポリシーのみを選択できます。さらに、ソートポリシーを選択した後、それを変更することはできません。
3.3 テストトラフィックを指定します。テストに設定できる最小トラフィック比率は 1% です。同じシナリオでは、テストグループ内のすべてのオンライントテストに設定するトラフィック比率の合計は 100% を超えることはできません。
4. テストグループの作成を完了します。
テストグループのテストを作成して設定したら、次へをクリックします。完了手順に「テストグループが作成されました」というメッセージが表示されます。完了をクリックして A/B テストページに戻ります。
次の図は、作成されたテストグループが保留中状態であることを示しています。
5. テストを開始します。
テストグループを作成した後、テストグループのアクション列にあるテストの開始をクリックしてテストを開始できます。テストが開始されると、テストグループのステータスはテスト中になります。
6. オンライン検索クエリに A/B テストを使用します。
A/B テスト機能が有効になっており、テストグループが作成および設定されている場合、オンライント検索クエリに A/B テストを使用するには、クエリで abtest パラメータを指定する必要があります。 abtest パラメータは、scene_tag と flow_divider の 2 つのサブパラメータで構成されます。
次のコードは、検索クエリに使用される URL です。
/v3/openapi/apps/160029126/search?query=query=default:'Shenzhen'&&config=start:0,hit:10,format:fulljson&abtest=scene_tag:test_1,flow_divider:123456scene_tag: テストグループの名前。もともと、scene_tag はテストシーンのタグを指定します。このパラメータの値を、OpenSearch コンソールで作成するテストグループの名前に設定できます。前の図は手順を示しています。このようにして、テストグループのテストに設定したテストトラフィックが対応するテストに送信されます。
flow_divider: このパラメータを指定する必要があります。バックエンドシステムはこのパラメータの値に対してハッシュ演算を実行し、クエリトラフィックをテストグループ内の異なるテストに割り当てます。バックエンドシステムは、OpenSearch コンソールで各テストに設定した比率に基づいてトラフィックを割り当てます。 flow_divider パラメータをユーザーの ID に設定することをお勧めします。また、パラメータをユーザーデバイスの ID または IP アドレスに設定することもできます。
注:
OpenSearch SDK を使用して OpenSearch にアクセスする場合、scene_tag パラメータと flow_divider パラメータの値にスペースや句読点が含まれていない場合は、scene_tag パラメータと flow_divider パラメータの値をエンコードせずに、対応するメソッドを直接呼び出すことができます。 scene_tag パラメータと flow_divider パラメータの値にスペースや句読点が含まれている場合は、最初に scene_tag パラメータと flow_divider パラメータの値をエンコードする必要があります。詳細については、このトピックの「実践例」セクションを参照してください。
API 操作を呼び出して OpenSearch にアクセスする場合、scene_tag パラメータと flow_divider パラメータの値は URL エンコードする必要があります。 abtest パラメータの値は、abtest=urlencode(scene_tag:urlencode(\$scene),flow_divider:urlencode(\$value)) の形式で OpenSearch に渡されます。この形式では、urlencode は URL のエンコードに使用される関数です。
詳細については、A/B テストに関する FAQ を参照してください。
ステップ 2: テストグループとテストを管理する
テストグループを管理します。
テストグループが作成されると、A/B テストページのテストグループリストに表示されます。
作成したテストグループに対して、次の基本操作を実行できます。
1. テストを開始します。
ステータスが保留中または停止中のテストグループのテストを開始できます。
2. テストを停止します。
ステータスがテスト中のテストグループのテストを停止できます。
3. テストグループを削除します。
A/B テストページでテストグループを削除できます。
テストを管理します。
テストグループが作成されると、A/B テストページのテストグループリストに表示されます。
テストグループの詳細を表示するには、テストグループのアクション列にある詳細をクリックします。テストグループの詳細ページのテストリストセクションには、テストグループ内の各テストの名前、クエリ分析タイプとルール、ソートポリシータイプとポリシー、トラフィック比率、およびテストで実行できる操作が一覧表示されます。
作成したテストに対して、次の基本操作を実行できます。
テストの編集: テストの名前、設定、およびトラフィックを編集できます。
テストの削除: テストを削除すると、システムはその設定を保持しなくなります。削除したテストはオンラインでは無効になります。
ホワイトリストの設定:
OpenSearch は、flow_divider パラメータの特定の値を特定のテストに追加できるホワイトリスト機能を提供します。このようにして、テストの検索効果を確認できます。
ステップ 3: A/B テストグループの詳細を表示する
行動データステータス
テストグループを作成した後、A/B テストページのアクション列にあるテストグループの詳細をクリックできます。テストグループの詳細ページで、行動データステータスを表示できます。行動データは次の状態になる可能性があります。
アクティブ化されていません: アプリケーションの行動データはアップロードされていません。詳細については、データ収集 V2.0 を参照してください。
データなしでアクティブ化: アプリケーションの行動データ収集機能が有効になっています。ただし、アプリケーションは行動データを受信していません。
異常 (使用不可): 品質チェックに基づいて、行動データは信頼できないことが判明しました。
テストグループステータス
テストグループを作成した後、A/B テストページのテストグループのアクション列にある詳細をクリックできます。テストグループの詳細ページで、テストグループのステータスを表示できます。テストグループは次の状態になる可能性があります。
保留中: テストグループのテストを開始または停止できます。
テスト中: テストグループのテストが開始されています。テストが開始されてからの経過日数が表示されます。
停止: テストグループのテストが停止されています。累積テスト時間は、テストが最初に開始された時刻から最後に停止された時刻まで計算されます。実際にテストが実行されている日数のみが累積されます。
データ統計
テストグループのデータ統計を表示するには、A/B テストページで表示するテストグループを見つけ、テストグループのアクション列にある詳細をクリックします。テストグループの詳細ページのデータ統計セクションで、A/B テストのデータレポートを表示できます。または、左側のナビゲーションペインでレポート統計 > A/B テストを選択して、A/B テストページに移動することもできます。 OpenSearch コンソールでは、テストグループのテストが開始されてから 1 日後に、テストグループのデータ統計を表示できます。 OpenSearch コンソールがアップグレードされると、コアメトリクス比較ページと特定のメトリクスデータテーブルがマージされます。メトリクスタイプドロップダウンリストから表示するメトリクスを選択できます。元のデータ形式ではなく、コアメトリクスデータが折れ線グラフに表示されます。デフォルトでは、最終日のメトリクスデータが表示されます。テストグループの詳細ページのデータ統計セクションでは、テストドロップダウンリストから比較するデータの複数のテストを選択できます。使用可能なコアメトリクスには、ページビュー (PV)、ユーザービュー (UV)、ゼロ結果率、ユーザーあたりの平均 PV、表示回数、検索クエリ、ユーザーあたりの平均検索クエリが含まれます。
注: ある日に A/B テストを開始した場合、翌日の 08:00 以降に A/B テスト用に生成されたレポートデータを表示できます。その日に A/B テストを停止した場合でも、翌日に A/B テストが停止される前に生成されたレポートデータを表示できます。
実践例
たとえば、OpenSearch を使用して、e コマース製品の次のタイプのクエリトラフィックを処理するとします。
タイプ 1: ユーザーが製品キーワードに基づいて送信する検索リクエストのトラフィック。例:
query=config=format:fulljson&&query=default:'粉ミルク'&&sort=price
タイプ 2: 他の内部サービスから送信されるコールトラフィック。例:
query=config=format:fulljson&&query=cat_id:'1'|'2'|'3'&&sort=timestamp
タイプ 1 のトラフィックの場合、ユーザーのメンバー ID に基づいて A/B テストを実行し、いくつかのソート式、カテゴリ予測モデル、またはクエリ分析ルールの効果を比較します。 要件を満たすには、次の手順を実行します:
1. OpenSearch コンソールの A/B テスト機能を使用して、テストグループと必要なテストを作成します。テストグループの作成ページの基本情報手順で、テストグループ名パラメータを user_search に設定します。

2. 検索クエリで abtest パラメータを設定します。 テストグループ名パラメータは OpenSearch コンソールで user_search に設定されています。したがって、検索クエリで scene_tag パラメータを user_search に、flow_divider パラメータをメンバー ID の値である xxxx に設定する必要があります。
2.1SDK を使用する. 次のコードは、Java 用 SDK を使用して検索クエリを設定する方法を示しています。 PHP 用 SDK の使用方法は、Java 用 SDK と似ています。
aliyun-sdk-opensearch-3.4.1 (Java) および opensearch-sdk-php-3.3.0 (PHP)
2.2API を使用する。
i. クエリを構築する: query=config=format:fulljson&&query=default:'粉ミルク'&&sort=-price&abtest=scene_tag:user_search,flow_divider:%e5%bc%a0%e4%b8%89.
注: abtest パラメータの scene_tag サブパラメータと flow_divider サブパラメータの値は URL エンコードされています。
ii. リクエストで、query、sort、abtest などの各パラメータの値に対して URL エンコードを実行します。
query=config%3dformat%3afulljson&&query%3ddefault%3a%27%e5%ae%9d%e5%ae%9d%e5%a5%b6%e7%b2%8
3. 上記の設定が完了したら、メンバー ID に基づいてユーザーからの検索クエリのトラフィックをテストグループにルーティングすることで、A/B テストを実行できます。
ビジネスオペレーションレポート
UI
A/B テストレポートページに移動するには、次の手順を実行します。OpenSearch コンソールの左側のナビゲーションペインで、機能拡張 > A/B テストを選択します。表示するテストを見つけて、アクション列の統計レポートをクリックします。

左側のナビゲーションペインでレポート統計 > A/B テストレポートを選択して、A/B テストレポートページに移動することもできます。

注: A/B テストレポートページで表示できるメトリクスの詳細については、A/B テストレポート を参照してください。