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.
Demo Dorong Data Perilaku Python SDK
Demo Dorong Data Perilaku Go SDK
Demo Dorong Data Perilaku C# SDK
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.
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.
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.
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;
}
}
}