All Products
Search
Document Center

OpenSearch:Demo saran drop-down

Last Updated:Aug 22, 2026

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 O&M 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 izin yang diperlukan telah diberikan ke peran AliyunServiceRoleForOpenSearch oleh Akun Alibaba Cloud Anda. Untuk informasi selengkapnya, lihat AliyunServiceRoleForOpenSearch dan Aturan otorisasi akses.

  • Kami menyarankan agar Anda tidak menyertakan pasangan AccessKey dalam materi yang mudah diakses orang lain, seperti kode proyek. Jika tidak, pasangan AccessKey Anda berisiko bocor dan sumber daya dalam 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 dalam file tersebut, lalu atur nilainya sesuai dengan ID AccessKey dan Rahasia AccessKey Anda.

    2. Mulai ulang Windows agar pasangan AccessKey berlaku.

Kode contoh untuk saran drop-down

Sebelum menjalankan kode contoh, ganti parameter berikut dengan nilai aktual Anda:

  • host: Titik akhir API publik instans Anda. Untuk mendapatkan titik akhir tersebut, buka halaman daftar instans, klik Details untuk instans tersebut, lalu temukan Public API Endpoint pada bagian Endpoint.

  • suggestionName: Nama model saran drop-down Anda. Untuk mendapatkan nama tersebut, buka Search Algorithm Center, pilih Search Guidance, lalu klik drop-down suggestion.

  • appName: Nama instans Anda. Anda dapat menemukan nama tersebut pada halaman daftar instans.

  • query: Kata kunci pencarian.

Catatan
  • Jika Anda menggunakan SDK v4.0.0 atau yang lebih baru, Anda harus meneruskan AppName saat membuat objek SuggestionClient. Parameter ini tidak diperlukan untuk versi SDK sebelum v4.0.0.

  • Untuk informasi selengkapnya tentang operasi API ini, lihat saran drop-down.

  • Anda dapat mengunduh Java SDK dari pusat unduhan.

SDK v4.0.0 dan yang lebih baru

package com.example.opensearch;

import com.aliyun.opensearch.OpenSearchClient;
import com.aliyun.opensearch.SuggestionClient;
import com.aliyun.opensearch.sdk.generated.OpenSearch;
import com.aliyun.opensearch.sdk.generated.commons.OpenSearchClientException;
import com.aliyun.opensearch.sdk.generated.commons.OpenSearchException;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.nio.charset.Charset;

public class SuggestDemo {
    // Ganti placeholder dengan nilai aktual Anda.
    static private final String host = "<your_public_api_endpoint>";
    static private final String appName = "<your_instance_name>";
    static private final String suggestionName = "<your_suggestion_model_name>";
    static private final byte hits = 8; // Jumlah maksimum saran yang akan dikembalikan.
    
    OpenSearch openSearch;
    OpenSearchClient openSearchClient;

    @Before
    public void setUp() {
      	// Konfigurasikan kredensial.
        // Baca kredensial dari variabel lingkungan.
        String accesskey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
        String secret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
        // Inisialisasi klien OpenSearch.
        openSearch = new OpenSearch(accesskey, secret, host);
        openSearchClient = new OpenSearchClient(openSearch);
    }

    @Test
    public void TestEnv() {
        // (Opsional) Cetak encoding file default.
        System.out.println(String.format("file.encoding: %s", System.getProperty("file.encoding")));
        System.out.println(String.format("defaultCharset: %s", Charset.defaultCharset().name()));

        // Buat klien untuk saran drop-down.
        SuggestionClient suggestionClient = new SuggestionClient(appName,suggestionName,openSearchClient);
        String query = "<your_search_query>";
try {
            SuggestParams suggestParams = new SuggestParams();
            suggestParams.setQuery(query); // Atur kueri pencarian.
            suggestParams.setHits(hits); // Atur jumlah maksimum saran.
            suggestParams.setUserId("12345678"); // Atur ID pengguna untuk hasil yang dipersonalisasi.
            
            // Secara default, fitur pelengkapan untuk homofon Tiongkok diaktifkan.
            // Anda dapat menambahkan parameter re_search untuk menyesuaikan perilaku ini.
            // ReSearch.findByValue(1) menonaktifkan fitur ini. ReSearch.findByValue(0) atau menghilangkan parameter mengaktifkannya.
            suggestParams.setReSearch(ReSearch.findByValue(1));
            SearchResult result = suggestionClient.execute(suggestParams); 
            System.out.println(result); // Cetak hasilnya.
        } catch (OpenSearchException e) {
            e.printStackTrace();
        } catch (OpenSearchClientException e) {
            e.printStackTrace();
        }
    }

    @After
    public void clean() {
        openSearch.clear();
    }
}</your_search_query></your_suggestion_model_name></your_instance_name></your_public_api_endpoint>

SDK sebelum v4.0.0

package com.example.opensearch;

import com.aliyun.opensearch.OpenSearchClient;
import com.aliyun.opensearch.SuggestionClient;
import com.aliyun.opensearch.sdk.generated.OpenSearch;
import com.aliyun.opensearch.sdk.generated.commons.OpenSearchClientException;
import com.aliyun.opensearch.sdk.generated.commons.OpenSearchException;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.nio.charset.Charset;

public class SuggestDemo {
    // Ganti placeholder dengan nilai aktual Anda.
    static private final String host = "<your_public_api_endpoint>";
    static private final String suggestionName = "<your_suggestion_model_name>";
    static private final byte hits = 8; // Jumlah maksimum saran yang akan dikembalikan.

    OpenSearch openSearch;
    OpenSearchClient openSearchClient;
    
    @Before
    public void setUp() {
      	// Konfigurasikan kredensial.
        // Baca kredensial dari variabel lingkungan.
        String accesskey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
        String secret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
        // Inisialisasi klien OpenSearch.
        openSearch = new OpenSearch(accesskey, secret, host);
        openSearchClient = new OpenSearchClient(openSearch);
    }

    @Test
    public void TestEnv() {
        // (Opsional) Cetak encoding file default.
        System.out.println(String.format("file.encoding: %s", System.getProperty("file.encoding")));
        System.out.println(String.format("defaultCharset: %s", Charset.defaultCharset().name()));

        // Buat klien untuk saran drop-down.
        SuggestionClient suggestionClient = new SuggestionClient(suggestionName, openSearchClient);
        String query = "<your_search_query>";
try {
            SuggestParams suggestParams = new SuggestParams();
            suggestParams.setQuery(query); // Atur kueri pencarian.
            suggestParams.setHits(hits); // Atur jumlah maksimum saran.
            suggestParams.setUserId("12345678"); // Atur ID pengguna untuk hasil yang dipersonalisasi.

            // Secara default, fitur pelengkapan untuk homofon Tiongkok diaktifkan.
            // Anda dapat menambahkan parameter re_search untuk menyesuaikan perilaku ini.
            // ReSearch.findByValue(1) menonaktifkan fitur ini. ReSearch.findByValue(0) atau menghilangkan parameter mengaktifkannya.
            suggestParams.setReSearch(ReSearch.findByValue(1));
            SearchResult result = suggestionClient.execute(suggestParams); 
            System.out.println(result); // Cetak hasilnya.
        } catch (OpenSearchException e) {
            e.printStackTrace();
        } catch (OpenSearchClientException e) {
            e.printStackTrace();
        }
    }

    @After
    public void clean() {
        openSearch.clear();
    }
}</your_search_query></your_suggestion_model_name></your_public_api_endpoint>