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

OpenSearch:データ収集 2.0 用 SDK

最終更新日:Dec 28, 2024

データ収集用 SDK

SDK 機能の概要

データ収集用 SDK は、データ収集とドキュメントプッシュに使用されるクラスを提供します。

SDK を使用して、OpenSearch アプリケーションのデータ収集とドキュメントプッシュを管理できます。一度に 1 つまたは複数のドキュメントをプッシュできます。

Java 用 SDK のリリースノート

PHP 用 SDK のダウンロード

行動データプッシュ用 Python SDK のデモ

行動データプッシュ用 Go SDK のデモ

行動データプッシュ用 C# SDK のデモ

  • クラス名: DataCollectionClient

  • 名前空間: OpenSearch\Client

メソッドの説明

コンストラクタ。

メソッド定義

void OpenSearch\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 クライアントバッファ内のドキュメントをサーバーにコミットします。

説明

バッファ内のドキュメントがサーバーにコミットされる前に、ドキュメントはバッファからクリアされます。そのため、サーバーがエラーを返し、ドキュメントを再度コミットする場合、コミットする前にドキュメントを再生成する必要があります。これにより、データの損失を防ぎます。

メソッド定義

\OpenSearch\Generated\Common\OpenSearchResult OpenSearch\Client\DataCollectionClient::commit(string $searchAppName,string $dataCollectionName,string $dataCollectionType)

パラメータの説明

パラメータ

タイプ

説明

$searchAppName

STRING

関連付けられている OpenSearch アプリケーションの名前。

$dataCollectionName

STRING

データ収集の名前。行動データ収集機能が有効になっている場合、OpenSearch コンソールによって返されます。

$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

関連付けられている OpenSearch アプリケーションの名前。

$dataCollectionName

STRING

データ収集の名前。行動データ収集機能が有効になっている場合、OpenSearch コンソールによって返されます。

$dataCollectionType

STRING

データ収集タイプ: BEHAVIOR


PHP 用 SDK の 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。数値 ID は OpenSearch アプリケーションに対応します。
            "biz_id" => 1365378,
            // このフィールドの値は、OpenSearch が検索結果で返す request_id パラメータの値です。request_id パラメータの値をそのまま渡します。
            "rn" => "156516585419723283227314",
            // ドキュメントが OpenSearch から検索および収集された場合、このフィールドを Alibaba に設定します。
            "trace_id" => "Alibaba",
            // このフィールドの値は、OpenSearch が検索結果で返す ops_request_misc パラメータの値です。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"
        ]
    ]
));
// DataCollectionClient オブジェクトを作成し、OpenSearchClient オブジェクトを構築パラメータとして使用します。
$dataCollectionClient = new DataCollectionClient($client);
$ret = $dataCollectionClient->push($docs, $searchAppName, $dataCollectionName, $dataCollectionType);
print_r(json_decode($ret->result, true));

PHP 用 SDK の 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";
// DataCollectionClient オブジェクトを作成し、OpenSearchClient オブジェクトを構築パラメータとして使用します。
$dataCollectionClient = new DataCollectionClient($client);
// ドキュメントを追加します。
// ドキュメントは SDK クライアントバッファに追加されますが、サーバーにはコミットされません。ドキュメントは、commit() メソッドを呼び出したときにのみサーバーにコミットされます。
// add() メソッドを複数回呼び出して複数のドキュメントを追加し、commit() メソッドを呼び出してドキュメントを一度にサーバーにコミットできます。
$dataCollectionClient->add([
    // 一意のユーザー ID。
    "user_id" => "1120021255", 
    // 異なる検索サービスを区別するために使用される数値 ID。数値 ID は OpenSearch アプリケーションに対応します。
    "biz_id" => 1365378,
    // このフィールドの値は、OpenSearch が検索結果で返す request_id パラメータの値です。request_id パラメータの値をそのまま渡します。
    "rn" => "156516585419723283227314",
    // ドキュメントが OpenSearch から検索および収集された場合、このフィールドを Alibaba に設定します。
    "trace_id" => "Alibaba",
    // このフィールドの値は、OpenSearch が検索結果で返す ops_request_misc パラメータの値です。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 用 SDK の push() メソッドを使用してデータを収集するデモ

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);
        // DataCollectionClient オブジェクトを作成し、OpenSearchClient オブジェクトを構築パラメータとして使用します。
        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 用 SDK の 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);
        // DataCollectionClient オブジェクトを作成し、OpenSearchClient オブジェクトを構築パラメータとして使用します。
        DataCollectionClient dataCollectionClient = new DataCollectionClient(client);
        Map<String, Object> fields = new HashMap<String, Object>();
        // 一意のユーザー ID。
        fields.put("user_id", "1120021255");
        // 異なる検索サービスを区別するために使用される数値 ID。数値 ID は OpenSearch アプリケーションに対応します。
        fields.put("biz_id", 1365378);
        // このフィールドの値は、OpenSearch が検索結果で返す request_id パラメータの値です。request_id パラメータの値をそのまま渡します。
        fields.put("rn", "1564455556323223680397827");
        // ドキュメントが OpenSearch から検索および収集された場合、このフィールドを Alibaba に設定します。
        fields.put("trace_id", "Alibaba");
        // このフィールドの値は、OpenSearch が検索結果で返す ops_request_misc パラメータの値です。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;
        }
    }
}