All Products
Search
Document Center

OpenSearch:Buat prototipe pencarian e-dagang dengan OpenSearch

Last Updated:Aug 21, 2026

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.

System architecture of the e-commerce search prototype

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.

  1. 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.

  2. Pilih jenis aplikasi. Pilih advanced application yang mendukung penggabungan beberapa tabel. Untuk perbandingan jenis aplikasi, lihat Perbandingan antara aplikasi standar dan aplikasi lanjutan.

  3. 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

    ParameterDeskripsi
    Product TypeMetode penagihan: subscription atau pay-as-you-go. Untuk detailnya, lihat Metode penagihan.
    Region and ZoneChina: Shenzhen, Qingdao, Beijing, Zhangjiakou, Hangzhou, Shanghai, dan Hong Kong. Asia Pasifik: Singapura. Eropa & Amerika: Jerman (Frankfurt) dan AS (Virginia).
    Application NameMenerima angka, huruf, dan garis bawah (_). Harus dimulai dengan huruf. Maksimal 30 karakter. Tidak dapat diubah setelah dibuat.
    Application TypeAplikasi lanjutan atau aplikasi standar.
    Cluster PreferencesJenis 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 ResourcesTetapkan 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:

MetodePaling Cocok untuk
Manually define an application schemaKontrol penuh atas setiap bidang dan tipe
Use a template to define an application schemaPenyiapan cepat menggunakan templat bawaan atau kustom
Upload a file to define an application schemaBootstrapping 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 schemaSinkronisasi 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 DOUBLE

  • pid, tipe INT, ditetapkan sebagai kunci utama

  • sale_price, tipe DOUBLE

  • act_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 bidang category_name, description, brand_name, title, create_by, dan update_by. Analyzer: Industry - E-commerce general analyzer

  • category_name (indeks nama kategori): Analyzer: Industry - E-commerce general analyzer

  • category_id: Analyzer: Keyword

  • series_name: Analyzer: Chinese - general analyzer

  • brand_name: Analyzer: Chinese - general analyzer

  • id: Analyzer: Keyword

  • title (indeks judul): Analyzer: Industry - E-commerce general analyzer

  • seller_id: Analyzer: Keyword

  • brand_id: Analyzer: Keyword

  • series_id: Analyzer: Keyword

Catatan

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:

FiturFungsinyaContoh
Stop wordMenyaring kata-kata yang tidak bermakna, seperti tanda baca dan partikel modal.Kueri "Running Man!" — tanda seru difilter.
Spelling correctionMengoreksi kesalahan ejaan pasti secara otomatis. Untuk kemungkinan kesalahan, kueri asli tetap digunakan."Alipapa" dikoreksi menjadi "Alibaba".
Word weightMengevaluasi 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".
SynonymMemperluas 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

  1. Di Konsol Open Search, buka Search Algorithm Center > Retrieval Configuration. Klik Dictionary Management.

  2. 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.

  3. 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.

  4. 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

  5. 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

  1. Buka Search Algorithm Center > Retrieval Configuration. Klik Query Analysis Rule Configuration.

  2. Klik Create. Di panel Create Rule, atur Intervention Dictionaries menjadi kamus koreksi ejaan yang telah Anda buat (misalnya, dic_error). Di panel yang sama, masukkan test_error sebagai nama aturan. Nama dapat berisi angka, huruf, dan garis bawah (_), harus dimulai dengan huruf kecil, dan tidak boleh melebihi 16 karakter. Atur aplikasi target menjadi test_han_indexes di 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

  1. 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 target title, industri E-commerce, dan fitur yang disertakan Spelling Correction.

  2. 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 kueri title:'连衣群', 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

  1. Di Konsol Open Search, buka Search Algorithm Center > Sort Configuration untuk membuka halaman Policy Management.

  2. 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_bm250 dan Weight menjadi 1, 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