Pencarian multimodal menggabungkan pencarian teks dan pencarian vektor untuk meningkatkan recall pada kueri yang tidak dapat ditangani oleh pencarian teks saja—seperti kueri panjang, istilah salah eja, atau ekspresi yang kaya secara semantik. Dibandingkan dengan penggunaan operator logika OR, pencarian multimodal memberikan latensi lebih rendah, penggunaan komputasi lebih efisien, dan akurasi lebih tinggi. Manfaat ini telah diverifikasi dalam skenario pencarian tanya-jawab.
Kapan menggunakan pencarian multimodal
Gunakan pencarian multimodal ketika:
Kueri mencakup bahasa alami atau frasa panjang di mana tokenisasi gagal menangkap maksud penuhnya.
Pencarian teks melewatkan hasil relevan meskipun konfigurasi sinonim dan koreksi ejaan telah diterapkan.
Cara kerja
Pencarian multimodal menggabungkan pencarian teks dan pencarian vektor, lalu menggabungkan hasil yang telah diperingkat menggunakan kebijakan pengurutan gabungan yang dapat dikonfigurasi.
Arsitektur pengambilan multimodal yang sama juga mendukung:
Pengambilan gambar berbasis vektor
Pengambilan berbasis ekspresi
Pengambilan terpersonalisasi
Contoh
Kueri beefjerky ditokenisasi menjadi beef dan jerky. Dokumen yang berisi "Tone River natural beefjerky" juga ditokenisasi menjadi token-token individual: Tone, River, natural, beef, dan jerky. Pencarian teks murni gagal mengambil dokumen ini karena pencarian teks mengambil dokumen berdasarkan kata kunci yang diperoleh setelah analisis—dalam kasus ini, bentuk majemuk tidak dapat dicocokkan. Pencarian vektor mengambil dokumen tersebut berdasarkan kemiripan semantik, sehingga memulihkan recall yang terlewat oleh pencarian teks.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Aplikasi eksklusif Edisi Peningkatan Spesifik Industri untuk E-dagang (pencarian multimodal tidak tersedia untuk aplikasi bersama)
Indeks vektor yang telah dikonfigurasi pada aplikasi (contoh di bawah menggunakan alat analisis Vector - General E-commerce Vector)
Konfigurasi pencarian multimodal
Langkah 1: Buat aplikasi dan verifikasi indeks vektor
Buat aplikasi Edisi Peningkatan Spesifik Industri untuk E-dagang. Setelah aplikasi dibuat, konfirmasi bahwa indeks vektor telah dikonfigurasi.

Langkah 2: Buat aturan analisis kueri dengan vektorisasi teks
Buat aturan analisis kueri. Pilih Text Vectorization untuk mengaktifkan fitur penyematan kata, lalu pilih indeks vektor yang dikonfigurasi pada Langkah 1.

Hanya indeks vektor yang dihasilkan sistem yang dapat dipilih di sini. Untuk menggunakan indeks vektor kustom, kirimkan Tiket.
Langkah 3: Tinjau kebijakan pengurutan
Secara default, aplikasi menyertakan dua kebijakan pengurutan: kebijakan pengurutan kasar sys_first_default dan kebijakan pengurutan presisi sys_second_default. Kebijakan ini akan dirujuk saat mengonfigurasi pencarian teks dan pencarian vektor pada langkah berikutnya.

Langkah 4: Buat kebijakan pencarian multimodal
Buat kebijakan pencarian multimodal dengan mengonfigurasi hal berikut:
Tentukan nama kebijakan.
Konfigurasi fitur text search: pilih kebijakan pengurutan kasar dan presisi dari Langkah 3 serta atur proporsi hasil pengambilan.
Konfigurasi fitur vector search: pilih kebijakan pengurutan kasar dan presisi dari Langkah 3 serta atur proporsi hasil pengambilan. Proporsi pencarian teks dan pencarian vektor harus berjumlah 100%.
Konfigurasi merge sort: opsional, pilih kebijakan pengurutan presisi untuk mengurutkan ulang hasil gabungan. Atur Number of Sort Documents ke nilai antara 1 hingga 5.000.

Langkah 5: Uji pencarian
Uji di Konsol OpenSearch
Jalankan pencarian dengan parameter berikut. Ketiga parameter ini wajib diisi. Jika menggunakan aturan analisis kueri default, parameter qp dapat diabaikan.

query=default:'Search test'&search_strategy=sys_strategy&raw_query=Search test&qp=sys_default| Parameter | Deskripsi | Nilai contoh |
|---|---|---|
query | Klausa kueri pencarian | default:'Search test' |
search_strategy | Nama kebijakan pencarian multimodal | sys_strategy |
raw_query | String kueri asli yang diteruskan ke pencarian vektor | Search test |
qp | Nama aturan analisis kueri | sys_default |
Uji dengan OpenSearch SDK untuk Java
// Buat objek Config untuk menentukan parameter paging dan format respons.
Config config = new Config(Lists.<String>newArrayList(appName));
config.setStart(0);
config.setHits(10);
// Atur format respons ke JSON.
config.setSearchFormat(SearchFormat.FULLJSON);
// Bangun permintaan pencarian.
SearchParams searchParams = new SearchParams(config);
// Atur parameter kustom.
HashMap<String, String> paraMap = new HashMap<String, String>();
paraMap.put("raw_query", "Search test"); // String kueri asli.
paraMap.put("search_strategy", "sys_strategy"); // Nama kebijakan pencarian multimodal.
searchParams.setCustomParam(paraMap);
// Atur aturan analisis kueri.
List<String> qpName = new ArrayList<String>();
qpName.add("sys_default"); // Nama aturan analisis kueri.
searchParams.setQueryProcessorNames(qpName);Batasan
| Batasan | Detail |
|---|---|
| Jenis aplikasi | Hanya aplikasi eksklusif yang mendukung pencarian multimodal |
| Kebijakan pencarian per aplikasi | Maksimal 10 kebijakan pencarian multimodal |
| Klausa yang tidak didukung | Klausa aggregate dan distinct tidak didukung |
| Proporsi pencarian | Proporsi pencarian teks dan pencarian vektor harus berjumlah 100% |
| Number of Sort Documents | Wajib diisi; rentang nilai yang valid adalah 1–5.000 |
| Pemilihan indeks vektor | Hanya indeks vektor yang dihasilkan sistem yang dapat digunakan untuk penyematan kata; untuk indeks vektor kustom, kirimkan Tiket |