データ収集 SDK
SDK 機能の概要
このクラスは、データ収集ドキュメントをプッシュするために使用されます。
検索アプリケーションにおけるデータ収集のためのドキュメントプッシュを管理します。これには、単一ドキュメントのプッシュとバッチでのドキュメントのプッシュが含まれます。
クラス名: DataCollectionClient
名前空間: OpenSearch\Client
説明
コンストラクターメソッド。
インターフェース定義
voidOpenSearch\Client\DataCollectionClient::__construct(\OpenSearch\Client\OpenSearchClient $openSearchClient)パラメーター
パラメータ | タイプ | 説明 |
$openSearchClient | OpenSearch\Client\OpenSearchClient | ベースクラスです。署名を計算し、サーバーサイドと対話し、結果を返します。 |
add
説明
ドキュメントを追加します。
このドキュメントは SDK クライアントバッファーに追加されるだけで、サーバーサイドにはコミットされません。ドキュメントは `commit` メソッドを呼び出したときにのみサーバーサイドにコミットされます。`add` を複数回呼び出した後、`commit()` を呼び出してすべてのドキュメントを一度に送信できます。
インターフェース定義
\OpenSearch\Generated\Common\OpenSearchResult OpenSearch\Client\DataCollectionClient::add(array $fields)パラメーター
パラメータ | タイプ | 説明 |
$fields | array | 行動データ、ユーザーデータ、またはアイテムデータのドキュメントのすべてのフィールド。例: `array("user_id" => "1021468", "bhv_type" => "click")`。 |
commit
説明
SDK クライアントバッファー内のドキュメントをサーバーサイドにプッシュします。
ドキュメントが送信される前にバッファーはクリアされます。サーバーサイドがエラーを返し、操作をリトライする必要がある場合は、ドキュメントを再生成して `commit` を再度呼び出す必要があります。これにより、潜在的なデータ損失を防ぐことができます。
インターフェース定義
\OpenSearch\Generated\Common\OpenSearchResult OpenSearch\Client\DataCollectionClient::commit(string $searchAppName,string $dataCollectionName,string $dataCollectionType)パラメーター
パラメータ | タイプ | 説明 |
$searchAppName | string | 関連付けられた検索アプリケーションの名前。 |
$dataCollectionName | string | データ収集の名前。この名前は、機能を有効にするとコンソールから返されます。 |
$dataCollectionType | string | データ収集タイプ: BEHAVIOR |
push
説明
ドキュメントのバッチをプッシュします。
この操作は、ドキュメントをサーバーサイドに同期的に送信します。
インターフェース定義
\OpenSearch\Generated\Common\OpenSearchResult OpenSearch\Client\DataCollectionClient::push(string $docJson,string $searchAppName,string $dataCollectionName,string $dataCollectionType)パラメーター
パラメータ | タイプ | 説明 |
$docJson | string | JSON フォーマットのドキュメントのリスト。 |
$searchAppName | string | 関連付けられた検索アプリケーションの名前。 |
$dataCollectionName | string | データ収集の名前。この名前は、機能を有効にするとコンソールから返されます。 |
$dataCollectionType | string | データ収集のタイプ。これを `BEHAVIOR` に設定します。 |
PHP デモ: Push を使用したデータプッシュ
<?php
require_once("Config.inc.php");
use OpenSearch\Client\DataCollectionClient;
use OpenSearch\Generated\DataCollection\Command;
$searchAppName = "opensearch_app_name";
$dataCollectionName = "opened_data_collection_name";
$dataCollectionType = "BEHAVIOR";
$docs = json_encode(array(
[
"cmd" => Command::$__names[Command::ADD],
"fields" => [
// 一意のユーザー ID。
"user_id" => "1120021255",
// ビジネス側で異なるサービスを区別するために使用される数値 ID。OpenSearch アプリケーションに対応します。
"biz_id" => 1365378,
// 検索結果で返される request_id の値。そのまま返します。
"rn" => "156516585419723283227314",
// 結果が OpenSearch からのものである場合、このフィールドを Alibaba に設定します。
"trace_id" => "Alibaba",
// 検索結果で返される ops_request_misc の値。そのまま返します。
"trace_info" => "%7B%22request%5Fid%22%3A%22156516585419723283227314%22%2C%22scm%22%3A%2220140713.120006678..%22%7D",
// OpenSearch アプリケーションのプライマリテーブルのプライマリキーの値。
"item_id" => "2223",
// アイテムのタイプ (アイテムやプロダクトなど)。
"item_type" => "goods",
// クリックスルー行動データ。
"bhv_type" => "click",
// 行動が発生したときの UNIX タイムスタンプ (秒単位)。
"bhv_time" => "1566475047"
]
]
));
// OpenSearchClient オブジェクトをコンストラクターパラメーターとして DataCollectionClient オブジェクトを作成します。
$dataCollectionClient = new DataCollectionClient($client);
$ret = $dataCollectionClient->push($docs, $searchAppName, $dataCollectionName, $dataCollectionType);
print_r(json_decode($ret->result, true));PHP デモ: Commit を使用したデータプッシュ
<?php
require_once("Config.inc.php");
use OpenSearch\Client\DataCollectionClient;
use OpenSearch\Generated\DataCollection\Command;
$searchAppName = "opensearch_app_name";
$dataCollectionName = "opened_data_collection_name";
$dataCollectionType = "BEHAVIOR";
// OpenSearchClient オブジェクトをコンストラクターパラメーターとして DataCollectionClient オブジェクトを作成します。
$dataCollectionClient = new DataCollectionClient($client);
// ドキュメントを追加します。
// このドキュメントは SDK クライアントバッファーに追加されるだけで、サーバーサイドにはコミットされません。ドキュメントは commit メソッドを呼び出したときにのみサーバーサイドにコミットされます。
// add を複数回呼び出した後、commit() を呼び出してすべてのドキュメントを一度に送信します。
$dataCollectionClient->add([
// 一意のユーザー ID。
"user_id" => "1120021255",
// ビジネス側で異なるサービスを区別するために使用される数値 ID。OpenSearch アプリケーションに対応します。
"biz_id" => 1365378,
// 検索結果で返される request_id の値。そのまま返します。
"rn" => "156516585419723283227314",
// 結果が OpenSearch からのものである場合、このフィールドを Alibaba に設定します。
"trace_id" => "Alibaba",
// 検索結果で返される ops_request_misc の値。そのまま返します。
"trace_info" => "%7B%22request%5Fid%22%3A%22156516585419723283227314%22%2C%22scm%22%3A%2220140713.120006678..%22%7D",
// OpenSearch アプリケーションのプライマリテーブルのプライマリキーの値。
"item_id" => "2223",
// アイテムのタイプ (アイテムやプロダクトなど)。
"item_type" => "goods",
// クリックスルー行動データ。
"bhv_type" => "click",
// 行動が発生したときの UNIX タイムスタンプ (秒単位)。
"bhv_time" => "1566475047"
]);
$ret = $dataCollectionClient->commit($searchAppName, $dataCollectionName, $dataCollectionType);
print_r(json_decode($ret->result, true));Java デモ: データ収集のプッシュ
package com.aliyun.opensearch.demo;
import com.aliyun.opensearch.DataCollectionClient;
import com.aliyun.opensearch.OpenSearchClient;
import com.aliyun.opensearch.sdk.generated.OpenSearch;
import com.aliyun.opensearch.sdk.generated.commons.OpenSearchResult;
public class PushDataCollectionDoc {
private static String accesskey = "your ak";
private static String secret = "your secret";
private static String host = "your host";
private static String searchAppName = "opensearch_app_name";
private static String dataCollectionName = "opened_data_collection_name";
private static String dataCollectionType = "BEHAVIOR";
public static void main(String[] args) {
// OpenSearch オブジェクトを作成して構築します。
OpenSearch opensearch = new OpenSearch(accesskey, secret, host);
// OpenSearch オブジェクトをコンストラクターパラメーターとして OpenSearchClient オブジェクトを作成します。
OpenSearchClient client = new OpenSearchClient(opensearch);
// OpenSearchClient オブジェクトをコンストラクターパラメーターとして DataCollectionClient オブジェクトを作成します。
DataCollectionClient dataCollectionClient = new DataCollectionClient(client);
// ドキュメントを直接プッシュします。
String docJson = "[{\"cmd\":\"ADD\",\"fields\":{\"user_id\":\"1120021255\","+
"\"biz_id\":1365378,\"rn\":\"156516585419723283227314\","+
"\"trace_id\":\"Alibaba\","+
"\"trace_info\":\"%7B%22request%5Fid%22%3A%22156516585419723283227314%22%2C%22scm%22%3A%2220140713.120006678..%22%7D\","+
"\"item_id\":\"id\",\"item_type\":\"goods\","+
"\"bhv_type\":\"click\",\"bhv_time\":\"1566475047\"}}]";
try {
OpenSearchResult openSearchResult = dataCollectionClient.push(docJson,
searchAppName, dataCollectionName,
dataCollectionType);
System.out.println(openSearchResult);
} catch (Exception e) {
e.printStackTrace();
assertTrue(false);
return;
}
}
}Java デモ: Commit メソッドを使用したデータプッシュ
package com.aliyun.opensearch.demo;
import com.aliyun.opensearch.DataCollectionClient;
import com.aliyun.opensearch.OpenSearchClient;
import com.aliyun.opensearch.sdk.generated.OpenSearch;
import com.aliyun.opensearch.sdk.generated.commons.OpenSearchResult;
import java.util.HashMap;
import java.util.Map;
public class PushDataCollectionDoc {
private static String accesskey = "your ak";
private static String secret = "your secret";
private static String host = "your host";
private static String searchAppName = "opensearch_app_name";
private static String dataCollectionName = "opened_data_collection_name";
private static String dataCollectionType = "BEHAVIOR";
public static void main(String[] args) {
// OpenSearch オブジェクトを作成して構築します。
OpenSearch opensearch = new OpenSearch(accesskey, secret, host);
// OpenSearch オブジェクトをコンストラクターパラメーターとして OpenSearchClient オブジェクトを作成します。
OpenSearchClient client = new OpenSearchClient(opensearch);
// OpenSearchClient オブジェクトをコンストラクターパラメーターとして DataCollectionClient オブジェクトを作成します。
DataCollectionClient dataCollectionClient = new DataCollectionClient(client);
Map<String, Object> fields = new HashMap<String, Object>();
// 一意のユーザー ID。
fields.put("user_id", "1120021255");
// ビジネス側で異なるサービスを区別するために使用される数値 ID。OpenSearch アプリケーションに対応します。
fields.put("biz_id", 1365378);
// 検索結果で返される request_id の値。そのまま返します。
fields.put("rn", "1564455556323223680397827");
// 結果が OpenSearch からのものである場合、このフィールドを Alibaba に設定します。
fields.put("trace_id", "Alibaba");
// 検索結果で返される ops_request_misc の値。そのまま返します。
fields.put("trace_info", "%7B%22request%5Fid%22%3A%22156516585419723283227314%22%2C%22scm%22%3A%2220140713.120006678..%22%7D");
// OpenSearch アプリケーションのプライマリテーブルのプライマリキーの値。
fields.put("item_id", "2223");
// アイテムのタイプ (アイテムやプロダクトなど)。
fields.put("item_type", "goods");
// クリックスルー行動データ。
fields.put("bhv_type", "click");
// 行動が発生したときの UNIX タイムスタンプ (秒単位)。
fields.put("bhv_time", "1566475047");
// ドキュメントを追加します。
// このドキュメントは SDK クライアントバッファーに追加されるだけで、サーバーサイドにはコミットされません。ドキュメントは commit メソッドを呼び出したときにのみサーバーサイドにコミットされます。
// add を複数回呼び出した後、commit() を呼び出してすべてのドキュメントを一度に送信します。
dataCollectionClient.add(fields);
try {
OpenSearchResult openSearchResult = dataCollectionClient.commit(searchAppName, dataCollectionName, dataCollectionType);
System.out.println(openSearchResult);
} catch (Exception e) {
e.printStackTrace();
return;
}
}
}