全部产品
Search
文档中心

OpenSearch:Kode demo untuk mendorong data perilaku

更新时间:Jul 02, 2025

Konfigurasikan variabel lingkungan

Konfigurasikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.

Penting
  • Pasangan AccessKey dari akun Alibaba Cloud dapat digunakan untuk mengakses semua Operasi API. Kami menyarankan Anda menggunakan Pengguna Resource Access Management (RAM) untuk memanggil Operasi API atau melakukan operasi pemeliharaan rutin. Untuk informasi tentang cara menggunakan Pengguna RAM, lihat Buat Pengguna RAM.

  • Untuk informasi tentang cara membuat pasangan AccessKey, lihat Buat Pasangan AccessKey.

  • Jika Anda menggunakan pasangan AccessKey dari Pengguna RAM, pastikan bahwa izin yang diperlukan diberikan kepada peran AliyunServiceRoleForOpenSearch menggunakan akun Alibaba Cloud Anda. Untuk informasi lebih lanjut, lihat AliyunServiceRoleForOpenSearch dan Aturan Otorisasi Akses.

  • Kami menyarankan agar Anda tidak menyertakan pasangan AccessKey Anda dalam materi yang mudah diakses oleh orang lain, seperti kode proyek. Jika tidak, pasangan AccessKey Anda mungkin bocor dan sumber daya di akun Anda menjadi tidak aman.

  • Linux dan macOS

    Jalankan perintah berikut. Ganti <access_key_id> dan <access_key_secret> dengan ID AccessKey dan Rahasia AccessKey dari Pengguna RAM yang Anda gunakan.

    export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id> 
    export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret>
  • Windows

    1. Buat file variabel lingkungan, tambahkan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET ke file tersebut, lalu atur variabel lingkungan ke ID AccessKey dan Rahasia AccessKey Anda.

    2. Mulai ulang Windows agar pasangan AccessKey berlaku.

Tambahkan dependensi

Unduh paket dependensi di https://www.nuget.org/packages.

dotnet add package AlibabaCloud.TeaUtil --version  0.1.5
dotnet add package AlibabaCloud.OpenSearchUtil --version 1.0.2
dotnet add package Aliyun.Credentials --version  1.2.1
dotnet add package Tea --version 0.4.0

Kode contoh

Kode contoh berikut menunjukkan cara mendorong data perilaku menggunakan SDK untuk C#:

using System;
using System.Collections.Generic;
using AlibabaCloud.TeaUtil.Models;
using Tea;

namespace ConsoleApp2
{
    internal class Program
    {
        public static Dictionary<string, object> behaviorBulk(Client opensearchClient, string appName,
            string collectionName, List<object> docContent, Dictionary<string, string> header, RuntimeOptions runTime)
        {
            string pathName = "/v3/openapi/app-groups/" + appName + "/data-collections/" + collectionName +
                              "/data-collection-type/BEHAVIOR/actions/bulk";
            try
            {
                return opensearchClient._request("POST", pathName, null, header, docContent, runTime);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }


        private static void Main(string[] args)
        {
            var runtime = new RuntimeOptions
            {
                ConnectTimeout = 5000,
                ReadTimeout = 10000,
                MaxAttempts = 0,
                Autoretry = false,
                IgnoreSSL = false,
                MaxIdleConns = 50
            };

            var config = new Config
            {
                // Tentukan titik akhir API OpenSearch. Anda bisa mendapatkan titik akhir dari konsol OpenSearch.
                Endpoint = "opensearch-cn-hangzhou.aliyuncs.com",

                // Tentukan protokol permintaan. Nilai valid: HTTPS dan HTTP.
                Protocol = "HTTPS",

                // Tentukan pasangan AccessKey Anda.
                // Dapatkan ID AccessKey dan Rahasia AccessKey dari variabel lingkungan. 
    						// Anda harus mengonfigurasi variabel lingkungan sebelum menjalankan kode ini. Untuk informasi lebih lanjut, lihat bagian "Konfigurasikan variabel lingkungan" dari topik ini.
                AccessKeyId =  System.Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
                AccessKeySecret = System.Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),

                // Tentukan metode autentikasi. Nilai default: access_key. Nilai sts menunjukkan autentikasi berdasarkan Resource Access Management (RAM) dan Security Token Service (STS).
                // Nilai valid: sts dan access_key.
                Type = "access_key",

                // Jika Anda menggunakan autentikasi berdasarkan RAM dan STS, Anda harus menentukan parameter SecurityToken. Anda bisa memanggil operasi AssumeRole dari Alibaba Cloud RAM untuk mendapatkan token STS.
                SecurityToken = "",
            };

            // Buat instance klien OpenSearch.
            var openSearch = new Client(config);

            // Tentukan nama aplikasi tempat Anda ingin mendorong data.
            var appName = "appName";

            // Sesuaikan header HTTP.
            var header = new Dictionary<string, string>();

            // --------------- Dorong log perilaku ---------------
            

            // item_id: ID kunci utama yang dikembalikan dalam hasil pencarian.
            string item_id = "358713";

            // ops_request_misc: informasi tambahan permintaan yang dikembalikan dalam hasil pencarian.
            string ops_request_misc =
                "%7B%22request%5Fid%22%3A%22161777635816780357273903%22%2C%22scm%22%3A%2220140713.130149759..%22%7D";

            // bhv_type: jenis acara dari data perilaku. Nilai valid:
            // cart: menambahkan komoditas ke keranjang belanja.
            // collect: menambahkan komoditas ke favorit.
            // like: menyukai komoditas.
            // comment: memposting komentar pada komoditas.
            // buy: membeli komoditas.
            // click: mengklik atau melihat komoditas.
            string bhv_type = "click";

            // request_id: ID permintaan yang dikembalikan dalam hasil pencarian.
            string request_id = "161777635816780357273903";

            // reach_time: Waktu ketika data diterima oleh server. Nilainya adalah timestamp UNIX yang akurat hingga detik.
            string reach_time = "1709708439";

            // user_id: ID unik pengguna yang mengirim permintaan. 
            // * Dalam banyak kasus, ID ini adalah milik pengguna yang telah masuk. 
            // * Jika pengguna mengirim permintaan dari klien PC dan belum masuk, ID ini adalah ID cookie.
            string user_id = "a7a0d37c824b659f36a5b9e3b819fcdd";

            List<object> behaviorDocs = new List<object>();
            Dictionary<string, object> behaviorDoc = new Dictionary<string, object>();

            Dictionary<string, object> behaviorDocFields = new Dictionary<string, object>()
            {
                {"item_id", item_id},
                {"sdk_type", "opensearch_sdk"},
                {"sdk_version", "<sdk_version>"}, // Nomor versi OpenSearch SDK untuk C#.
                {"trace_id", "ALIBABA"}, // Penyedia layanan.
                {"trace_info", ops_request_misc},
                {"bhv_type", bhv_type},
                {"item_type", "item"},
                {"rn", request_id},
                {"biz_id", "<biz_id>"}, // ID numerik yang digunakan oleh aplikasi seluler atau klien aplikasi untuk membedakan bisnis. Parameter ini dapat dikaitkan dengan aplikasi OpenSearch dan instans Artificial Intelligence Recommendation (AIRec).
                {"reach_time", reach_time},
                {"user_id", user_id}
            };

            behaviorDoc.Add("cmd", "ADD");
            behaviorDoc.Add("fields", behaviorDocFields);

            behaviorDocs.Add(behaviorDoc);
            try
            {
                behaviorBulk(openSearch, appName, appName, behaviorDocs, header, runtime);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
    }
}
Catatan

Untuk informasi lebih lanjut, lihat Dorong Data Terkumpul.