Saran drop-down adalah fitur dasar OpenSearch yang merekomendasikan kueri kandidat saat pengguna mengetik, guna meningkatkan efisiensi pengetikan dan membantu menemukan konten relevan lebih cepat.
Ikhtisar
Fitur saran drop-down mengekstraksi kueri dari konten dokumen Anda dan dapat menghasilkan kueri kandidat berdasarkan berbagai metode pencocokan untuk bahasa Tionghoa, termasuk pencocokan awalan, ejaan Pinyin lengkap, akronim huruf awal Pinyin, kombinasi karakter Tionghoa dan Pinyin, awalan setelah tokenisasi, serta homofon (kata-kata yang bunyinya mirip).
Sebagai contoh, Anda dapat mencari kueri long dress sebagai berikut:
Awalan Tionghoa:
连, 连衣, …Awalan Pinyin (ejaan lengkap):
l, li, lian, lianyi, lianyiqun, …Awalan Pinyin (huruf awal):
l, ly, lyq, …Karakter Tionghoa ditambah Pinyin:
连yi, 连衣qun, …Awalan setelah tokenisasi:
long style, long style dress, dress long, …Homofon Tionghoa dan karakter salah yang bunyinya mirip:
连衣群, 联谊群, …
Anda juga dapat menggunakan intervensi manual untuk memengaruhi hasil saran. Untuk melihat metrik kinerja utama saran drop-down, lihat Laporan saran drop-down.
Sumber data
Saran drop-down menggunakan data dari dokumen aplikasi dan kueri pengguna akhir Anda. Anda dapat menerapkan filter baik pada dokumen maupun kueri.
Kueri kandidat dari dokumen aplikasi
Anda dapat memilih hingga tiga bidang dari suatu aplikasi sebagai sumber data untuk setiap model saran drop-down. Selama pemrosesan, sistem memilih sampel dokumen (maksimal satu juta) dan memproses bidang yang dipilih sesuai aturan tertentu untuk menghasilkan kueri kandidat. Sistem kemudian menyimpan sebagian subset sebagai saran akhir. Dua aturan pembuatan didukung: Extract dan Retain original value.
Extract: Metode ini menggunakan alat analisis NLP Alibaba yang eksklusif dan dilatih dengan data bahasa alami dalam jumlah besar. Metode ini menerapkan tokenisasi pada konten bidang, mengekstraksi istilah bermakna, lalu menggabungkannya untuk membentuk kueri kandidat. Pendekatan ini memastikan bahwa saran yang dihasilkan dapat mengambil dokumen yang sesuai.
Retain original value: Metode ini menggunakan konten mentah suatu bidang sebagai kueri kandidat tanpa tokenisasi. Jika kontennya melebihi 30 karakter, konten tersebut dipotong menjadi 30 karakter pertama. Metode ini cocok untuk bidang yang tidak memerlukan tokenisasi, seperti nama toko, username, atau judul lagu, atau ketika Anda menyediakan sendiri kueri kandidat yang telah dibuat sebelumnya. Disarankan menggunakan bidang dengan konten yang singkat dan jelas.
Saat Anda menggunakan aturan Extract, Anda juga dapat menentukan extraction model untuk model saran drop-down. Setelah extraction model ditentukan, sistem menggunakan model bahasa besar untuk melakukan penyaringan tambahan terhadap kueri kandidat yang diekstraksi, menghapus kandidat yang tidak bermakna, dan meningkatkan kualitas saran. Extraction model merupakan konfigurasi opsional dan hanya berlaku jika suatu bidang menggunakan aturan Extract. Setelah extraction model diterapkan, Anda akan dikenai biaya berdasarkan jumlah token yang benar-benar dikonsumsi oleh model tersebut. Untuk informasi lebih lanjut tentang penagihan, lihat Penagihan.
Kueri kandidat dari kueri pengguna akhir
Sistem menganalisis riwayat pencarian pengguna selama N hari terakhir (default 7 hari) dan mempertimbangkan metrik seperti frekuensi pencarian, rata-rata jumlah hasil, bobot historis istilah, serta tingkat keberhasilan kueri terbaru. Berdasarkan analisis ini, sistem memilih kueri representatif sebagai saran kandidat.
Fitur kueri pencarian historis: Fitur saran drop-down juga mendukung opsi kueri pencarian historis, yang memprioritaskan saran berdasarkan kueri masa lalu pengguna saat ini (memerlukan parameter raw_query dan user_id dalam permintaan). Fitur kueri pencarian historis merupakan ekstensi yang dikenai biaya pelatihan berdasarkan jam komputasi yang dikonsumsi per pekerjaan pelatihan. Fitur kueri pencarian historis sedang dihentikan. Opsi ini tidak lagi ditampilkan saat Anda membuat model saran drop-down. Penjelasan berikut hanya berlaku untuk model yang sudah ada dan memiliki fitur ini diaktifkan.
Untuk menonaktifkan sumber data kueri pengguna akhir, Anda dapat mengatur kondisi filter kueri yang tidak akan pernah terpenuhi, misalnya biz_type=not_exist.
Setelah mengaktifkan fitur kueri pencarian historis, Anda harus menyertakan parameter user_id dalam permintaan saran drop-down Anda untuk mengirimkan hasil yang dipersonalisasi.
Kueri pencarian historis bersifat unik untuk setiap pengguna. Sistem menggunakan parameter user_id untuk membedakan pengguna. Misalnya, jika Pengguna A baru-baru ini mencari dishwasher, mereka mungkin melihat dishwasher sebagai saran lagi. Namun, Pengguna B yang belum pernah mencarinya tidak akan melihat istilah tersebut dalam sarannya.
Intervensi manual
Anda dapat memengaruhi saran drop-down secara manual dengan cara berikut:
Mengelola hasil kueri kandidat menggunakan daftar blokir (blocklist) dan daftar izin (allowlist).
Menetapkan kondisi filter pada dokumen aplikasi sumber. Saat Anda menerapkan filter, sistem hanya menggunakan dokumen yang memenuhi kondisi tersebut untuk menghasilkan saran kandidat.
Parameter | Deskripsi |
Kondisi filter | Tentukan kondisi filter berdasarkan bidang dalam skema aplikasi OpenSearch Anda. Filter ini berlaku untuk semua dokumen dalam aplikasi. Catatan:
Contoh: Jika Anda mengatur kondisi filter menjadi |
Pada halaman Create Drop-down Suggestion Model di konsol, Anda dapat mengonfigurasi pengaturan berikut:
Target Application: Pilih aplikasi yang berisi data sumber untuk saran kandidat.
Model Name: Masukkan nama sepanjang 1 hingga 30 karakter. Nama harus dimulai dengan huruf dan dapat berisi huruf besar, huruf kecil, angka, serta garis bawah (_). Nama harus unik di antara semua model Anda.
Training Fields: Pilih bidang sumber dari aplikasi target dan tentukan metode pemrosesan untuk setiap bidang: Extract atau Retain original value.
Extraction Model: Ini adalah konfigurasi opsional. Extraction model yang tersedia saat ini adalah deepseek-v4-flash. Setelah Anda memilih extraction model, sistem menggunakan model bahasa besar untuk menyaring kueri kandidat yang diekstraksi dan menghapus kandidat yang tidak bermakna. Konfigurasi ini hanya berlaku jika suatu bidang menggunakan aturan Extract. Setelah extraction model diterapkan, Anda akan dikenai biaya berdasarkan jumlah token yang benar-benar dikonsumsi oleh model tersebut.
Doc Filter Condition dan Query Filter Condition: Ini adalah kondisi filter yang masing-masing berlaku untuk sumber data dokumen aplikasi dan sumber data kueri pengguna akhir (misalnya,
status=1ataubiz_type=phone). Untuk aturan sintaksis, lihat deskripsi kondisi filter di atas.
Mengontrol hasil saran
Blocklist: Blocklist mendukung pencocokan berbasis contains. Kueri apa pun yang mengandung kata kunci dalam blocklist akan dikecualikan dari hasil saran drop-down. Jika Anda melihat saran yang tidak diinginkan, tambahkan kata kunci terkait ke blocklist untuk memblokirnya.
Allowlist: Jika kueri dalam allowlist memenuhi kriteria rekomendasi, kueri tersebut akan diprioritaskan dalam hasil saran drop-down. Jika kueri berkualitas tinggi tidak muncul atau peringkatnya terlalu rendah, tambahkan ke allowlist untuk meningkatkan visibilitasnya. Untuk detail cara mengonfigurasi blocklist dan allowlist, klik di sini.
Aplikasi Standard tidak mendukung saran drop-down. Fitur ini hanya tersedia untuk aplikasi Advanced.
Anda dapat membuat maksimal 10 model saran drop-down per aplikasi.
Nama model harus unik dalam akun Anda. Hal ini mencakup model saran drop-down, model popularitas, model prediksi kategori, model pencarian teratas, dan model petunjuk.
Hanya bidang terindeks bertipe TEXT, SHORT_TEXT, LITERAL, atau INT yang dapat digunakan sebagai sumber data untuk saran drop-down.
Anda dapat memilih maksimal tiga bidang pelatihan untuk satu model.
Saat memodifikasi skema aplikasi, Anda tidak dapat mengubah bidang yang digunakan oleh model saran drop-down.
Untuk melatih model saran drop-down, tabel aplikasi (termasuk
raw_querydan data yang disimpan) harus berisi lebih dari 1.000 entri. Jika tidak, pelatihan model mungkin gagal karena data tidak mencukupi.Menghapus aplikasi juga akan menghapus model saran drop-down yang terkait dengannya.
Untuk pencarian saran drop-down, parameter
querymendukung panjang maksimum 30 byte dalam encoding UTF-8 (maksimal 10 karakter Tionghoa). Jika batas ini dilampaui, sistem akan melaporkan error dan tidak mengembalikan hasil.Dalam pencarian saran drop-down, parameter
hitharus berupa bilangan bulat antara 1 hingga 30, inklusif. Jika Anda memberikan nilai di luar rentang ini (misalnya 0, -1, atau 31), sistem akan menggunakan nilai default 30 dan mengembalikan pesan error.Blocklist dapat berisi maksimal 500 kata kunci.
Allowlist dapat berisi maksimal 500 kueri.
Jika terjadi konflik antara blocklist dan allowlist, blocklist memiliki prioritas lebih tinggi.
Perubahan pada blocklist dan allowlist berlaku secara real time.
Setelah model saran drop-down dibuat, pelatihan harian terjadwal diaktifkan secara default. Data saran diperbarui secara berkala setiap siklus pelatihan.
Waktu pelatihan model saran drop-down bergantung pada volume data dan beban sistem. Jika pelatihan memakan waktu lebih dari 30 menit, silakan hubungi kami.
Fitur pencocokan homofon Tionghoa diaktifkan secara default. Anda dapat menonaktifkannya dengan menambahkan parameter
re_search="disable"ke permintaan Anda.Fitur dasar saran drop-down saat ini gratis. Sumber daya komputasi dan penyimpanan dialokasikan oleh sistem. Setiap model dialokasikan sekitar 100 QPS sumber daya komputasi dan penyimpanan untuk sekitar 2 juta kueri kandidat.
Kami menyarankan menyetel parameter
raw_querydalam permintaan pencarian untuk membantu sistem mengidentifikasi kueri asli yang dimasukkan pengguna. Untuk informasi lebih lanjut, lihat Pemrosesan pencarian.Jika Anda mengaktifkan fitur historical search query, Anda akan dikenai biaya untuk setiap pekerjaan pelatihan berdasarkan jam komputasi yang dikonsumsi. Untuk informasi lebih lanjut, lihat Penagihan (fitur ini sedang dihentikan dan tidak lagi ditampilkan saat Anda membuat model).
Setelah Anda mengonfigurasi extraction model, Anda akan dikenai biaya berdasarkan jumlah token yang benar-benar dikonsumsi oleh model tersebut. Untuk informasi lebih lanjut, lihat Penagihan.
Untuk informasi lebih lanjut tentang parameter raw_query, user_id, dan from_request_id, klik di sini.
Untuk mengaktifkan fitur high-frequency search query secara default, permintaan pencarian harus menyertakan parameter raw_query atau berisi indeks default dalam klausa kueri.
Independent raw_query: Parameter
raw_queryyang diperlukan untuk promosi pelatihan harus berupa kueri unik yang mengembalikan hasil.Data pelatihan model saran diperbarui setiap hari (T+1). Data yang diunggah pada hari tertentu akan berlaku setelah pelatihan selesai pada hari berikutnya.
Pemecahan masalah kegagalan pelatihan model
Jika pelatihan model saran drop-down Anda gagal, ikuti langkah-langkah berikut untuk memecahkan masalah:
Periksa laporan anomali: Di halaman detail model, pada area Basic Information, periksa Latest Version Status. Jika statusnya Training Failed atau Abnormal Data, area tersebut akan menampilkan tooltip Anomaly Report. Arahkan kursor ke tooltip tersebut untuk melihat Detail Pengecualian dan Solusi, lalu gunakan informasi ini untuk mengidentifikasi penyebab kegagalan pelatihan.
Periksa tingkat kelengkapan dan kondisi peningkatan: Di area Data Verification pada halaman detail model, periksa Completeness Level dan Upgrade Conditions yang sesuai. Sesuaikan data Anda berdasarkan kondisi peningkatan untuk meningkatkan tingkat kelengkapan, lalu latih ulang model tersebut.
Logika data T-1: Pelatihan model menggunakan data statistik dari hari sebelumnya (T-1). Saat model yang baru dibuat menjalankan pekerjaan pelatihan pertamanya, sistem mungkin melaporkan error "Training field does not exist" karena data dari hari sebelumnya belum tersedia. Tunggu hingga hari berikutnya setelah data siap, lalu latih ulang model tersebut.
Persyaratan volume data (kondisi L1): Pelatihan model memerlukan ambang batas data minimum berikut:
Volume data total (jumlah gabungan data
raw_querydan data dokumen aplikasi) harus minimal 1.000.Jumlah nilai
raw_queryunik harus melebihi 100.
Pemeriksaan format kondisi filter: Format kondisi filter yang salah merupakan penyebab umum kegagalan pelatihan. Nama bidang harus sesuai dengan bidang yang didefinisikan dalam skema aplikasi dan telah memiliki indeks. Operator yang didukung adalah <, >, <=, >=, =, dan !=. Beberapa kondisi memiliki hubungan AND dan harus dipisahkan dengan koma (,). Untuk sintaksis lengkap kondisi filter, lihat bagian Intervensi manual di atas.
Praktik terbaik
Untuk meningkatkan efektivitas saran drop-down (misalnya, meningkatkan pencarian berbasis saran dan tingkat klik), kaitkan permintaan saran dengan permintaan pencarian. Untuk instruksi, lihat bagian "Mengaitkan permintaan saran drop-down dengan permintaan pencarian" di akhir topik ini.
Pilih bidang dengan konten ringkas yang relevan dengan topik utama dokumen.
Gunakan aturan Extract dan Retain original value secara tepat sesuai kebutuhan Anda.
Dalam respons,
suggestionsberisi hasil pencarian, sedangkanerrorsmenunjukkan apakah terjadi error. Bidangerrorsyang tidak kosong tidak serta-merta berarti bidangsuggestionskosong. Oleh karena itu, saat menguraikan respons, periksa apakahsuggestionskosong untuk menentukan apakah akan menampilkan data.
Prosedur
1. Di konsol, buka Search Algorithm Center > Search Guidance > Drop-down Suggestions, lalu klik Create.
2. Masukkan Model Name, pilih Training Fields dan metode ekstraksi, pilih Extraction Model (opsional), masukkan Filter Conditions (opsional), lalu klik Submit.
3. Di halaman daftar Drop-down Suggestion, temukan model tersebut dan klik Train untuk memulai pelatihan.
4. Pelatihan biasanya memerlukan waktu 20 hingga 30 menit untuk selesai.
5. Setelah model dilatih, Anda dapat menguji saran tersebut. Berikut ini contoh metode Retain original value:
Retain original value:
Klik tombol Effect Preview di pojok kanan atas halaman detail model. Di kotak pencarian pop-up, masukkan kueri (misalnya, huruf E). Saran yang cocok akan muncul di bawah (seperti "Eifini" dan "ELF SACK"). Di sisi kanan, Anda dapat mengatur parameter user id dan display count.
6. Untuk mengkueri kueri kandidat secara online, lihat demo di bawah. Untuk informasi API lengkap, lihat Panduan pengembangan saran drop-down.
Referensi halaman saran drop-down
Halaman daftar Drop-down Suggestion
Di konsol OpenSearch, buka Search Algorithm Center > Search Guidance > Drop-down Suggestions untuk mengakses halaman daftar.
Halaman daftar menampilkan informasi untuk setiap model saran drop-down, termasuk Model Name, Creation Time, Model Status, Last Training Start Time, dan Latest Version Status (yang dapat berupa Pending Training, Scheduling, Training, Trained and Passed, Training Failed, atau Abnormal Data). Kolom Actions memungkinkan Anda melihat detail, melatih, atau melakukan operasi lain pada model tersebut.
Halaman detail model saran drop-down
Bagian atas halaman detail model menampilkan area Basic Information, yang menunjukkan waktu pembuatan, status model, dan status versi terbaru. Pojok kanan atas memiliki tombol Effect Preview. Halaman ini mencakup tiga tab: Drop-down Suggestion, Top Search & Hint, dan Blocklist/Allowlist.
Area Basic Information menunjukkan waktu pembuatan model, status model, waktu mulai pelatihan terakhir, dan status versi terbaru. Jika statusnya Training Failed atau Abnormal Data, tooltip Anomaly Report akan ditampilkan di area ini.
Bagian Configuration Information menunjukkan bidang pelatihan yang dikonfigurasi dan metode pemrosesannya, extraction model, Doc filter condition, Query filter condition, blocklist/allowlist, serta tugas terjadwal. Klik tombol Configure di pojok kanan atas untuk mengubah pengaturan ini.
Bagian Data Verification menunjukkan kelengkapan data dan tingkat kelengkapan untuk pelatihan model.
Bagian Training History menunjukkan catatan pelatihan untuk model tersebut.
Data metrik inti
Anda dapat memilih rentang waktu berbeda untuk melihat metrik inti model saran drop-down, yang ditampilkan dalam bentuk tabel dan grafik garis.
Catatan: Untuk definisi metrik tertentu, lihat Laporan saran drop-down.
Demo SDK
API:
GET v3/openapi/suggestions/{suggestion_name}/actions/search?hit=10&query={your_query}&re_search=homonym&user_id=xxxJava SDK dependensi Maven:
<dependency>
<groupId>com.aliyun.opensearch</groupId>
<artifactId>aliyun-sdk-opensearch</artifactId>
<version>4.0.0</version>
</dependency>Tautan terkait: Catatan Rilis
Contoh kode:
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 {
static private final String accesskey = "YOUR_ACCESSKEY_ID";
static private final String secret = "YOUR_ACCESSKEY_SECRET";
static private final String host = "THE_ENDPOINT_OF_THE_REGION_WHERE_YOUR_APP_IS_LOCATED";
OpenSearch openSearch;
OpenSearchClient openSearchClient;
static private final byte hits = 8; // Jumlah maksimum saran yang akan dikembalikan.
static private final String suggestionName = "YOUR_SUGGESTION_MODEL_NAME"; // Nama model saran drop-down Anda.
@Before
public void setUp() {
// Inisialisasi objek OpenSearch.
openSearch = new OpenSearch(accesskey, secret, host);
openSearchClient = new OpenSearchClient(openSearch);
}
@Test
public void TestEnv() {
// Tampilkan file dan format encoding default.
System.out.println(String.format("file.encoding: %s", System.getProperty("file.encoding")));
System.out.println(String.format("defaultCharset: %s", Charset.defaultCharset().name()));
// Buat objek SuggestionClient.
SuggestionClient suggestionClient = new SuggestionClient("YOUR_APP_NAME", suggestionName, openSearchClient);
String query = "YOUR_SEARCH_QUERY";
try {
SuggestParams suggestParams = new SuggestParams();
suggestParams.setQuery(query); // Atur kueri.
suggestParams.setHits(10); // Atur jumlah maksimum saran yang akan dikembalikan.
suggestParams.setUserId("12345678"); // Atur ID pengguna.
// Fitur pencocokan homofon Tionghoa diaktifkan secara default. Anda dapat menyesuaikannya menggunakan parameter re_search.
// Untuk menonaktifkan fitur ini, gunakan ReSearch.findByValue(1). Fitur ini diaktifkan secara default (setara dengan ReSearch.findByValue(0) atau menghilangkan parameter).
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();
}
}Untuk detail lebih lanjut tentang Java SDK saran drop-down, lihat demo saran drop-down.
Contoh respons:
{
"request_id": "159851481919726888064081",
"searchtime": 0.006246,
"suggestions": [
{
"suggestion": "trendy skirts"
},
{
"suggestion": "dresses for petite women"
},
{
"suggestion": "polka dot dresses"
},
{
"suggestion": "youthful skirts"
},
{
"suggestion": "polka dot skirt"
},
{
"suggestion": "skirts for petite women"
},
{
"suggestion": "polka dot skirts for petite women"
}
]
}Catatan: request_id yang dikembalikan dalam respons dapat digunakan untuk mengaitkan saran tersebut dengan permintaan pencarian berikutnya.
Mengaitkan permintaan saran dan pencarian
Mengaitkan permintaan saran dengan permintaan pencarian memberikan manfaat berikut:
Memungkinkan Anda mengumpulkan metrik untuk mengukur dampak saran drop-down terhadap kinerja pencarian. Metrik tersebut mencakup PV pencarian berbasis saran, tingkat klik, serta tingkat hasil nol/rendah. Untuk detail lebih lanjut, lihat Laporan saran drop-down.
Data permintaan yang dikaitkan memberikan wawasan, seperti data klik saran, yang dapat digunakan untuk mengoptimalkan model peringkat saran dan meningkatkan efektivitas pencarian berbasis saran.
Metode pengaitan:
Jika pengguna memulai pencarian dengan memilih saran drop-down, sertakan parameter
from_request_id={from_request_id}dalam permintaan pencarian. Parameterfrom_request_idmenunjukkan sumber pencarian. Jika kueri saat ini berasal dari daftar rekomendasi, seperti saran drop-down, model pencarian teratas, atau model petunjuk, Anda dapat menetapkanrequest_iddari permintaan rekomendasi tersebut ke parameter ini. Dengan mengaitkan peristiwa-peristiwa ini, Anda dapat menghitung metrik utama untuk fitur hulu, mengukur efektivitasnya, serta mengumpulkan data untuk optimasi. Parameter ini juga dijelaskan dalam dokumentasi pemrosesan pencarian.
Contoh:
Asumsikan panggilan API saran drop-down mengembalikan request_id sebesar 159851481919726888064081. Anda dapat mengaitkannya dengan permintaan pencarian seperti yang ditunjukkan di bawah ini:
SearchParams searchParams = new SearchParams(config);
searchParams.setQuery("title:'skirts for petite women'"); // Kueri yang dipandu oleh saran drop-down.
// Tambahkan parameter from_request_id.
Map<String, String> customParam =new HashMap<>();
customParam.put("from_request_id","159851481919726888064081");
searchParams.setCustomParam(customParam);
// Jalankan kueri dan kembalikan objek SearchResult.
SearchResult execute = searcherClient.execute(searchParams);
// Kembalikan data kueri sebagai string.
String result = execute.getResult();
System.out.println(result);