Buat sistem pencarian kata kunci untuk katalog produk yang mendukung pencarian multi-atribut, pemfilteran berdasarkan kategori, analisis query, dan pemeringkatan relevansi. Setelah menyelesaikan tutorial ini, Anda akan memiliki prototipe pencarian fungsional yang dapat menerima query kata kunci, memfilter hasil berdasarkan kategori dan harga, memperbaiki ejaan query yang salah, serta memeringkat hasil berdasarkan relevansi.

Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Akun Alibaba Cloud dengan Pasangan Kunci Akses. Aplikasi Open Search memerlukan Pasangan Kunci Akses untuk otentikasi.
(Opsional) Pasangan Kunci Akses untuk Pengguna RAM jika Anda berencana mendelegasikan akses. Untuk detailnya, lihat Aturan otorisasi akses.
(Opsional) Instans ApsaraDB RDS for MySQL yang berisi data produk jika Anda berencana menggunakan database sebagai sumber data Anda.
Langkah 1: Buat aplikasi
Pencarian E-dagang melibatkan beberapa tabel terkait, seperti tabel produk dan tabel harga. Pilih aplikasi canggih yang mendukung penggabungan beberapa tabel tersebut.
Masuk ke Konsol Open Search. Di panel navigasi kiri, klik Instance Management. Pada halaman Instance Management, klik Create Instance. Di pojok kiri atas halaman, atur edisi menjadi OpenSearch Industry Algorithm Edition, lalu pilih wilayah target pada bilah navigasi atas.
Pilih jenis aplikasi. Pilih advanced application yang mendukung penggabungan beberapa tabel. Untuk perbandingan jenis aplikasi, lihat Perbandingan antara aplikasi standar dan aplikasi lanjutan.
Konfigurasikan parameter aplikasi.
Tutorial ini menggunakan nilai parameter berikut:
Product Edition: Industry Algorithm Edition
Product Type: pay-as-you-go
Region and Zone: China (Hangzhou)
Industry Type: E-commerce Industry
Cluster Preferences: Exclusive Cluster - General-purpose
Parameter Deskripsi Product Type Metode penagihan: subscription atau pay-as-you-go. Untuk detailnya, lihat Metode penagihan. Region and Zone China: Shenzhen, Qingdao, Beijing, Zhangjiakou, Hangzhou, Shanghai, dan Hong Kong. Asia Pasifik: Singapura. Eropa & Amerika: Jerman (Frankfurt) dan AS (Virginia). Application Name Menerima angka, huruf, dan garis bawah (_). Harus dimulai dengan huruf. Maksimal 30 karakter. Tidak dapat diubah setelah dibuat. Application Type Aplikasi lanjutan atau aplikasi standar. Cluster Preferences Jenis spesifikasi: shared general-purpose, shared computing, shared storage, exclusive general-purpose, exclusive computing, dan exclusive storage. Untuk detailnya, lihat Apa itu OpenSearch? Storage Capacity and Computing Resources Tetapkan kuota berdasarkan workload Anda. Jumlah Unit komputasi logis (LCU) sama dengan jumlah permintaan per detik (QPS) dikalikan LCU yang dikonsumsi per kueri. Untuk melihat konsumsi LCU per kueri, beli instans shared general-purpose dan jalankan uji pencarian.
Langkah 2: Definisikan skema aplikasi
Open Search menyediakan empat metode untuk mendefinisikan skema aplikasi Anda:
| Metode | Paling Cocok untuk |
|---|---|
| Manually define an application schema | Kontrol penuh atas setiap bidang dan tipe |
| Use a template to define an application schema | Penyiapan cepat menggunakan templat bawaan atau kustom |
| Upload a file to define an application schema | Bootstrapping dari file data JSON yang sudah ada. Open Search mengurai file tersebut dan menghasilkan skema awal. Redefinisikan tipe bidang setelah pembuatan. |
| Use a data source to define an application schema | Sinkronisasi data dari ApsaraDB RDS, MaxCompute, atau PolarDB. Skema tabel sumber menghasilkan skema aplikasi awal, sehingga mengurangi pekerjaan manual dan kesalahan. |
Jika Anda menggunakan layanan penyimpanan Alibaba Cloud seperti MaxCompute, ApsaraDB RDS, atau PolarDB, tetapkan layanan tersebut sebagai sumber data di Konsol Open Search untuk sinkronisasi data otomatis. Langkah-langkah berikut menggunakan sumber data ApsaraDB RDS sebagai contoh. Untuk informasi lebih lanjut, lihat Konfigurasi sumber data ApsaraDB RDS for MySQL.
Hubungkan ke sumber data
Masukkan detail koneksi database.
Di kotak dialog Connect to Database, masukkan RDS Instance ID, Database Name, Username, dan Password, lalu klik Connect.
Pilih sumber data
Pilih tabel yang akan diimpor.
Di kotak dialog Select Data Source, klik tab RDS. Atur Select Database menjadi opensearch (instans yang terhubung adalah rm-bp1pgu04tn0ia280e). Di bagian Select Table, tambahkan product_1 dan price_detail_1 ke daftar terpilih, lalu klik OK.
Konfigurasi skema tabel
Contoh ini menggunakan dua tabel:
Primary table: tabel komoditas (katalog produk)
Secondary table: tabel harga komoditas
ID kunci utama pada tabel harga komoditas dikaitkan dengan ID kunci asing pada tabel komoditas.
Saat Anda mendefinisikan skema aplikasi, tabel utama product_1 berisi 15 bidang berikut:
category_name(nama kategori, TEXT)image_url(LITERAL_ARRAY)description(deskripsi produk, TEXT)brand_name(nama merek, TEXT)thumbnail_url(LITERAL_ARRAY)title(judul produk, TEXT)is_onsale(INT)url(LITERAL)brand_id(LITERAL)series_id(LITERAL)sold_num(volume penjualan, INT)category_id(INT)onsale_time(waktu listing, INT)price(DOUBLE)series_name(TEXT)
Untuk setiap bidang, Anda dapat mengonfigurasi kunci utama, tag bidang, tipe bidang, dan penggabungan ke tabel sekunder.
Tabel sekunder price_detail_1 (sumber data opensearch:price_detail_1) mendefinisikan empat bidang berikut:
discount_price, tipe DOUBLEpid, tipe INT, ditetapkan sebagai kunci utamasale_price, tipe DOUBLEact_price, tipe DOUBLE
Definisikan skema indeks
Tambahkan semua bidang yang dapat dicari dari tabel komoditas dan tabel harga komoditas ke daftar indeks bernama "default". Hal ini memungkinkan kueri seperti query=default:"keyword".
Atur industri ke E-commerce dan templat ke General. Daftar bidang indeks berisi konfigurasi indeks berikut:
default(indeks default): berisi bidangcategory_name,description,brand_name,title,create_by, danupdate_by. Analyzer: Industry - E-commerce general analyzercategory_name(indeks nama kategori): Analyzer: Industry - E-commerce general analyzercategory_id: Analyzer: Keywordseries_name: Analyzer: Chinese - general analyzerbrand_name: Analyzer: Chinese - general analyzerid: Analyzer: Keywordtitle(indeks judul): Analyzer: Industry - E-commerce general analyzerseller_id: Analyzer: Keywordbrand_id: Analyzer: Keywordseries_id: Analyzer: Keyword
Analyzer memengaruhi hasil pencarian. Pilih metode analisis dengan cermat. Untuk detailnya, lihat Built-in analyzers.
Aktifkan sinkronisasi data
Konfigurasikan sinkronisasi data otomatis agar pembaruan di sumber data secara otomatis didorong ke Open Search.
Di halaman konfigurasi sumber data, tabel product_1 dan price_detail_1 dikaitkan dengan instans ApsaraDB RDS yang sama, dan sakelar Automatic Data Synchronization diaktifkan.
Selesaikan aplikasi
Klik Completed. Di halaman Application Details, status aplikasi menunjukkan bahwa inisialisasi sedang berlangsung.
Langkah 3: Unggah data
Saat menggunakan sumber data ApsaraDB RDS, impor data penuh akan dimulai secara otomatis selama pembuatan indeks. Pantau progres impor di halaman Application Details.
Sebagai alternatif, Anda dapat mengunggah data melalui API atau SDK Open Search. Untuk informasi selengkapnya, lihat Ikhtisar API dan Ikhtisar SDK.
Langkah 4: Uji kueri pencarian
Setelah pengunggahan data selesai, lakukan uji pencarian. Konsol Open Search menyediakan halaman uji pencarian bawaan. Untuk akses programatik, gunakan API atau SDK Open Search.
Untuk detail sintaksis pencarian, lihat Kirim permintaan pencarian dan query clause.
Di halaman uji pencarian, pilih aplikasi test_han_indexes dan lingkungan aplikasi offline. Masukkan query=title:'裙子' serta atur klausa config menjadi start:0.
Langkah 5: Konfigurasi analisis query
Analisis query memproses kueri sebelum pengambilan untuk meningkatkan kualitas pencarian. Kueri long-tail mungkin menghasilkan sedikit hasil, sedangkan kueri yang mengandung kesalahan ejaan atau Pinyin Tiongkok bahkan mungkin tidak menghasilkan hasil sama sekali. Analisis query dirancang untuk mengatasi masalah tersebut. Untuk informasi lebih lanjut, lihat Analisis query dan Lakukan pencarian berdasarkan relevansi.
Open Search menyediakan fitur analisis query berikut:
| Fitur | Fungsinya | Contoh |
|---|---|---|
| Stop word | Menyaring kata-kata yang tidak bermakna, seperti tanda baca dan partikel modal. | Kueri "Running Man!" — tanda seru difilter. |
| Spelling correction | Mengoreksi kesalahan ejaan pasti secara otomatis. Untuk kemungkinan kesalahan, kueri asli tetap digunakan. | "Alipapa" dikoreksi menjadi "Alibaba". |
| Word weight | Mengevaluasi tingkat kepentingan kata kunci dan memberikan bobot. Kata kunci dengan kepentingan rendah mungkin dikecualikan dari pengambilan. | Kueri "Open Search is good or not" — mengambil dokumen yang berisi "Open Search". |
| Synonym | Memperluas kueri dengan sinonim dari pustaka sinonim bawaan dan model semantik. Fitur ini dapat dikombinasikan dengan word weight untuk hasil yang lebih baik. | "KFC" juga mengambil "Kentucky Fried Chicken". |
| Named entity recognition (NER) | Mengidentifikasi entitas semantik dalam kueri dan memberikan prioritas berdasarkan kategori. | "Nike Slim Dress" — "Nike" (merek, prioritas menengah), "Slim" (gaya, prioritas rendah), "Dress" (kategori, prioritas tinggi). |
Contoh: Siapkan koreksi ejaan
Langkah-langkah berikut menjelaskan cara mengonfigurasi aturan koreksi ejaan.
Buat kamus intervensi
Di Konsol Open Search, buka Search Algorithm Center > Retrieval Configuration. Klik Dictionary Management.
Klik Create. Di panel Create Query Analysis Dictionary, masukkan nama kamus, atur Dictionary Type menjadi Spelling Correction, lalu klik Save. Dalam contoh ini, atur Name menjadi
dic_error.Di daftar kamus, temukan kamus Anda dan klik Manage Entries. Halaman manajemen entri menampilkan detail kamus, termasuk nama, jenis kamus, waktu pembuatan, dan jumlah entri. Untuk menambahkan entri, klik Add Intervention Entry atau Add Entries in Batches.
Klik Add Intervention Entry untuk membuat entri.
Di kotak dialog Add Intervention Entry, tentukan informasi berikut:
Query: istilah pencarian yang akan dikoreksi, misalnya
连衣群Corrected Word: istilah yang benar, misalnya
连衣裙Intervention Type: pilih Add atau Block
Klik Save. Entri tersebut muncul di daftar entri intervensi. Daftar tersebut menampilkan kolom Query, Corrected Word, Intervention Type, Modified At, Status, dan Actions, serta menyediakan kotak pencarian Enter Query untuk memfilter entri. Dalam contoh ini, kueri salah
连衣群dikoreksi menjadi连衣裙, jenis intervensi adalah Add, dan statusnya Effective.
Buat aturan analisis query
Buka Search Algorithm Center > Retrieval Configuration. Klik Query Analysis Rule Configuration.
Klik Create. Di panel Create Rule, atur Intervention Dictionaries menjadi kamus koreksi ejaan yang telah Anda buat (misalnya,
dic_error). Di panel yang sama, masukkantest_errorsebagai nama aturan. Nama dapat berisi angka, huruf, dan garis bawah (_), harus dimulai dengan huruf kecil, dan tidak boleh melebihi 16 karakter. Atur aplikasi target menjaditest_han_indexesdi lingkungan aplikasi online, atur cakupan indeks ke title dan jenis industri ke E-commerce, lalu pilih Spelling Correction di bagian fitur. Pilih System Built-in Dictionary sebagai sumber kamus, lalu klik OK untuk membuat aturan.
Uji dan terapkan aturan
Di halaman Query Analysis Rule Configuration, klik Search Test di kolom Actions untuk memverifikasi perilaku koreksi. Daftar aturan menampilkan nama analisis query
test_error, tipe Custom, indeks targettitle, industri E-commerce, dan fitur yang disertakan Spelling Correction.Setelah verifikasi, klik Index Orientation dan atur aturan tersebut sebagai aturan analisis query default.
Di halaman uji pencarian, pilih indeks, atur parameter
qp=test_error, dan masukkan kuerititle:'连衣群', yang mengandung kesalahan ejaan sengaja. Klik Search. Konsol menampilkan prompt bahwa hasil dikembalikan untuk连衣裙dengan opsi untuk mencari连衣群sebagai gantinya; kueri secara otomatis dikoreksi menjadi(title:"连衣裙"), dan produk yang cocok dengan连衣裙dikembalikan.Setelah aturan ditetapkan sebagai default, nama analisis query di daftar aturan berubah menjadi
[Default]test_error, yang ditampilkan dalam warna merah karena aturan belum dipublikasikan, dan kolom Default menunjukkan Yes. Untuk membatalkan, klik Cancel Default Rule di kolom Actions.
Langkah 6: Konfigurasi ekspresi pengurutan
Ekspresi pengurutan mengontrol cara hasil pencarian diurutkan. Anda dapat menentukan ekspresi pengurutan dalam klausa kueri untuk mengurutkan hasil. Open Search menggunakan pendekatan peringkat dua fase: pengurutan kasar (peringkat fase pertama) mempersempit kandidat, sedangkan pengurutan presisi (peringkat fase kedua) menentukan urutan akhir.
Untuk detailnya, lihat Konfigurasi ekspresi pengurutan.
Buat ekspresi pengurutan kasar
Di Konsol Open Search, buka Search Algorithm Center > Sort Configuration untuk membuka halaman Policy Management.
Klik Create untuk menambahkan ekspresi pengurutan kasar. Pilih bidang representatif seperti skor teks dan skor ketepatan waktu. Karena pengurutan kasar sangat memengaruhi kinerja pencarian, pilih bidang tersebut dengan cermat.
Pada langkah informasi dasar, pilih Target Application dan lingkungannya, lalu masukkan Policy Name. Nama harus terdiri dari 1 hingga 30 karakter, dimulai dengan huruf, serta dapat berisi huruf besar, huruf kecil, angka, dan garis bawah (_). Atur Type menjadi Expression, lalu klik Next.
Pada langkah konfigurasi pengurutan, atur Scoring Feature menjadi
static_bm250dan Weight menjadi1, lalu klik Finish.
Buat ekspresi pengurutan presisi
Tambahkan ekspresi pengurutan presisi untuk skor relevansi teks.
Di halaman informasi dasar wizard Create Policy, masukkan Policy Name, atur Application Scope menjadi Fine Sort, atur Type menjadi Expression, lalu klik Next untuk melanjutkan ke langkah konfigurasi pengurutan.
Di editor ekspresi pengurutan, masukkan text_relevance(title), lalu klik Finish.
Bandingkan hasil pengurutan
Di halaman Search Test, bandingkan hasil kueri standar dengan kueri yang menerapkan ekspresi pengurutan.
Pilih indeks test_han_indexes dan atur jenis aplikasi menjadi Online Application. Masukkan query=title:'裙子' dan atur klausa config menjadi start:0. Halaman tersebut menampilkan hasil dari dua kebijakan pengurutan presisi secara berdampingan sehingga Anda dapat memverifikasi efek konfigurasi pengurutan presisi Anda.
Langkah 7: Tambahkan saran drop-down dan prediksi kategori
Saran drop-down
Saran drop-down membantu pengguna menemukan kueri lebih cepat saat mengetik dan mengurangi upaya input dalam pencarian e-dagang. Untuk petunjuk penyiapan, lihat Saran drop-down.
Prediksi kategori
Prediksi kategori mengidentifikasi kategori produk yang paling mungkin dituju oleh kueri pencarian. Untuk petunjuk penyiapan, lihat Prediksi kategori.
Langkah 8: Kontrol keragaman hasil dan penyaringan
Klausa distinct
Saat beberapa produk dari satu vendor memperoleh skor tinggi, produk tersebut dapat mendominasi halaman hasil. Klausa distinct menegakkan keragaman sehingga hasil mencakup produk dari berbagai vendor. Untuk detail selengkapnya, lihat Klausa distinct.
Klausa filter
Klausa filter memungkinkan pengguna mempersempit hasil berdasarkan rentang atribut, seperti harga. Untuk detail selengkapnya, lihat Klausa filter.
Kode Java berikut menunjukkan cara menyaring berdasarkan rentang harga:
if(!lowPrice.equals("")){
queryElement.addFilter("price>=" + lowPrice);
}
if(!highPrice.equals("")){
queryElement.addFilter("price<=" + highPrice);
}Apa yang telah Anda buat
Setelah menyelesaikan langkah-langkah ini, prototipe pencarian e-dagang Anda mendukung:
Pencarian kata kunci multi-atribut di beberapa tabel yang digabung
Analisis kueri dengan koreksi ejaan, stop words, sinonim, dan pengenalan entitas bernama (NER)
Peringkat relevansi dua fase menggunakan ekspresi pengurutan kasar dan pengurutan presisi
Saran drop-down dan prediksi kategori
Keragaman hasil melalui klausa distinct dan penyaringan harga menggunakan klausa filter
Open Search menyediakan API dan SDK pencarian sehingga Anda dapat mengintegrasikan kemampuan ini ke dalam aplikasi Anda tanpa perlu membangun dan memelihara infrastruktur pencarian kustom.
Langkah selanjutnya
Ikhtisar API — integrasikan pencarian ke dalam aplikasi Anda
Ikhtisar SDK — gunakan SDK berbasis bahasa pemrograman
Analisis Query — jelajahi fitur pemrosesan query tambahan
Konfigurasi Ekspresi Pengurutan — sesuaikan peringkat hasil secara lebih halus