全部产品
Search
文档中心

OpenSearch:Data Collection SDK 2.0

更新时间:Jan 28, 2026

Data Collection SDK

Ikhtisar Fitur SDK

Kelas ini digunakan untuk mendorong dokumen data collection.

Kelas ini mengelola dorongan dokumen untuk data collection dalam aplikasi pencarian, termasuk mendorong dokumen tunggal dan mendorong dokumen secara batch.

Panduan Versi Java SDK

Unduhan PHP SDK

Demo Dorong Data Perilaku Python SDK

Demo Dorong Data Perilaku Go SDK

Demo Dorong Data Perilaku C# SDK

Contoh penggunaan TypeScript

  • Nama Kelas: DataCollectionClient

  • Namespace: OpenSearch\Client

Deskripsi

Metode konstruktor.

Definisi antarmuka

voidOpenSearch\Client\DataCollectionClient::__construct(\OpenSearch\Client\OpenSearchClient $openSearchClient)

Parameter

Parameter

Tipe

Deskripsi

$openSearchClient

OpenSearch\Client\OpenSearchClient

Kelas dasar. Kelas ini menghitung signature, berinteraksi dengan server-side, dan mengembalikan hasil.


add

Deskripsi

Menambahkan dokumen.

Catatan

Dokumen ini hanya ditambahkan ke buffer klien SDK dan belum dikirim ke server-side. Dokumen akan dikirim ke server-side hanya ketika Anda memanggil metode `commit`. Anda dapat memanggil `add` beberapa kali, lalu memanggil `commit()` untuk mengirimkan semua dokumen sekaligus.

Definisi Antarmuka

\OpenSearch\Generated\Common\OpenSearchResult OpenSearch\Client\DataCollectionClient::add(array $fields)

Parameter

Parameter

Tipe

Deskripsi

$fields

array

Semua bidang dokumen untuk data perilaku, data pengguna, atau data item. Contoh: `array("user_id" => "1021468", "bhv_type" => "click")`.


commit

Deskripsi

Mendorong dokumen yang ada di buffer klien SDK ke server-side.

Catatan

Buffer dihapus sebelum dokumen dikirim. Jika server-side mengembalikan error dan Anda perlu mencoba ulang operasi tersebut, Anda harus membuat ulang dokumen dan memanggil `commit` lagi. Hal ini mencegah potensi kehilangan data.

Definisi antarmuka

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

Parameter

Parameter

Tipe

Deskripsi

$searchAppName

string

Nama aplikasi pencarian terkait.

$dataCollectionName

string

Nama data collection. Konsol mengembalikan nama ini saat Anda mengaktifkan fitur tersebut.

$dataCollectionType

string

Tipe pengumpulan data: BEHAVIOR


push

Deskripsi

Mendorong batch dokumen.

Catatan

Operasi ini mengirim dokumen ke server-side secara sinkron.

Definisi antarmuka

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

Parameter

Parameter

Tipe

Deskripsi

$docJson

string

Daftar dokumen dalam format JSON.

$searchAppName

string

Nama aplikasi pencarian terkait.

$dataCollectionName

string

Nama data collection. Konsol mengembalikan nama ini saat Anda mengaktifkan fitur tersebut.

$dataCollectionType

string

Tipe data collection. Tetapkan nilai ini ke `BEHAVIOR`.


Demo PHP: Mengirim Data Menggunakan 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 pengguna unik.
            "user_id" => "1120021255", 
            // ID numerik yang digunakan di sisi bisnis untuk membedakan layanan berbeda. ID ini sesuai dengan aplikasi OpenSearch.
            "biz_id" => 1365378,
            // Nilai request_id yang dikembalikan dalam hasil pencarian. Kembalikan apa adanya.
            "rn" => "156516585419723283227314",
            // Jika hasil berasal dari OpenSearch, tetapkan bidang ini ke Alibaba.
            "trace_id" => "Alibaba",
            // Nilai ops_request_misc yang dikembalikan dalam hasil pencarian. Kembalikan apa adanya.
            "trace_info" => "%7B%22request%5Fid%22%3A%22156516585419723283227314%22%2C%22scm%22%3A%2220140713.120006678..%22%7D",
            // Nilai kunci utama dari tabel utama dalam aplikasi OpenSearch.
            "item_id" => "2223",
            // Tipe item, seperti item atau produk.
            "item_type" => "goods",
            // Data perilaku klik.
            "bhv_type" => "click",
            // Stempel waktu UNIX dalam detik saat perilaku terjadi.
            "bhv_time" => "1566475047"
        ]
    ]
));
// Buat objek DataCollectionClient dengan objek OpenSearchClient sebagai parameter konstruktor.
$dataCollectionClient = new DataCollectionClient($client);
$ret = $dataCollectionClient->push($docs, $searchAppName, $dataCollectionName, $dataCollectionType);
print_r(json_decode($ret->result, true));

Demo PHP: Dorong data menggunakan 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";
// Buat objek DataCollectionClient dengan objek OpenSearchClient sebagai parameter konstruktor.
$dataCollectionClient = new DataCollectionClient($client);
// Tambahkan dokumen.
// Dokumen ini hanya ditambahkan ke buffer klien SDK. Dokumen belum dikirim ke server-side. Dokumen akan dikirim ke server-side hanya ketika Anda memanggil metode commit.
// Panggil add beberapa kali, lalu panggil commit() untuk mengirimkan semua dokumen sekaligus.
$dataCollectionClient->add([
    // ID pengguna unik.
    "user_id" => "1120021255", 
    // ID numerik yang digunakan di sisi bisnis untuk membedakan layanan berbeda. ID ini sesuai dengan aplikasi OpenSearch.
    "biz_id" => 1365378,
    // Nilai request_id yang dikembalikan dalam hasil pencarian. Kembalikan apa adanya.
    "rn" => "156516585419723283227314",
    // Jika hasil berasal dari OpenSearch, tetapkan bidang ini ke Alibaba.
    "trace_id" => "Alibaba",
    // Nilai ops_request_misc yang dikembalikan dalam hasil pencarian. Kembalikan apa adanya.
    "trace_info" => "%7B%22request%5Fid%22%3A%22156516585419723283227314%22%2C%22scm%22%3A%2220140713.120006678..%22%7D",
    // Nilai kunci utama dari tabel utama dalam aplikasi OpenSearch.
    "item_id" => "2223",
    // Tipe item, seperti item atau produk.
    "item_type" => "goods",
    // Data perilaku klik.
    "bhv_type" => "click",
    // Stempel waktu UNIX dalam detik saat perilaku terjadi.
    "bhv_time" => "1566475047"
]);
$ret = $dataCollectionClient->commit($searchAppName, $dataCollectionName, $dataCollectionType);
print_r(json_decode($ret->result, true));

Demo Java: Pengumpulan Data 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) {
        // Buat dan konstruksi objek OpenSearch.
        OpenSearch opensearch = new OpenSearch(accesskey, secret, host);
        // Buat objek OpenSearchClient dengan objek OpenSearch sebagai parameter konstruktor.
        OpenSearchClient client = new OpenSearchClient(opensearch);
        // Buat objek DataCollectionClient dengan objek OpenSearchClient sebagai parameter konstruktor.
        DataCollectionClient dataCollectionClient = new DataCollectionClient(client);
        // Dorong dokumen langsung.
        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;
        }
    }
}

Demo Java: Dorong data menggunakan metode 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) {
        // Buat dan konstruksi objek OpenSearch.
        OpenSearch opensearch = new OpenSearch(accesskey, secret, host);
        // Buat objek OpenSearchClient dengan objek OpenSearch sebagai parameter konstruktor.
        OpenSearchClient client = new OpenSearchClient(opensearch);
        // Buat objek DataCollectionClient dengan objek OpenSearchClient sebagai parameter konstruktor.
        DataCollectionClient dataCollectionClient = new DataCollectionClient(client);
        Map<String, Object> fields = new HashMap<String, Object>();
        // ID pengguna unik.
        fields.put("user_id", "1120021255");
        // ID numerik yang digunakan di sisi bisnis untuk membedakan layanan berbeda. ID ini sesuai dengan aplikasi OpenSearch.
        fields.put("biz_id", 1365378);
        // Nilai request_id yang dikembalikan dalam hasil pencarian. Kembalikan apa adanya.
        fields.put("rn", "1564455556323223680397827");
        // Jika hasil berasal dari OpenSearch, tetapkan bidang ini ke Alibaba.
        fields.put("trace_id", "Alibaba");
        // Nilai ops_request_misc yang dikembalikan dalam hasil pencarian. Kembalikan apa adanya.
        fields.put("trace_info", "%7B%22request%5Fid%22%3A%22156516585419723283227314%22%2C%22scm%22%3A%2220140713.120006678..%22%7D");
        // Nilai kunci utama dari tabel utama dalam aplikasi OpenSearch.
        fields.put("item_id", "2223");
        // Tipe item, seperti item atau produk.
        fields.put("item_type", "goods");
        // Data perilaku klik.
        fields.put("bhv_type", "click");
        // Stempel waktu UNIX dalam detik saat perilaku terjadi.
        fields.put("bhv_time", "1566475047");
        // Tambahkan dokumen.
        // Dokumen ini hanya ditambahkan ke buffer klien SDK. Dokumen belum dikirim ke server-side. Dokumen akan dikirim ke server-side hanya ketika Anda memanggil metode commit.
        // Panggil add beberapa kali, lalu panggil commit() untuk mengirimkan semua dokumen sekaligus.
        dataCollectionClient.add(fields);
        try {
            OpenSearchResult openSearchResult = dataCollectionClient.commit(searchAppName, dataCollectionName, dataCollectionType);
            System.out.println(openSearchResult);
        } catch (Exception e) {
            e.printStackTrace();
            return;
        }
    }
}