AlloyDB Omni mendukung semua fitur dan kemampuan penelusuran teks lengkap, termasuk dukungan untuk indeks GIN dan GiST.
Konsep inti penelusuran teks lengkap
Untuk menerapkan penelusuran teks lengkap (FTS) secara efektif, Anda harus memahami cara PostgreSQL memproses dan menelusuri teks. Unit penelusuran, yaitu dokumen, biasanya berupa kolom teks atau kombinasi kolom dari sebuah baris. Proses build indeks mengurai dokumen ini untuk mengaitkan kata (atau leksem, bentuk dasar kata) dengan baris.
Proses ini melibatkan pipeline pra-pemrosesan yang mengubah teks mentah menjadi format yang dapat ditelusuri dengan:
- Memecah teks menjadi token.
- Menghapus kata-kata umum.
- Menormalkan kata ke bentuk dasarnya; misalnya, "run" adalah leksem untuk "run", "runs", "running", dan "ran".
Menggunakan penelusuran teks lengkap juga mengharuskan Anda mempelajari jenis data khusus, operator, dan berbagai strategi pengindeksan, termasuk indeks PostgreSQL bawaan dan indeks RUM berperforma tinggi.
PostgreSQL menggunakan dua jenis data utama dan operator kecocokan untuk mengelola FTS:
tsvector: Mewakili dokumen dalam format yang dapat ditelusuri—sebagai daftar leksem berbeda yang diurutkan.tsquery: Mewakili istilah penelusuran, termasuk operator boolean yang memungkinkan Anda menggabungkan leksem.@@: Memeriksa apakahtsvectorcocok dengantsquery, sehingga memungkinkan penelusuran yang memperhatikan aspek linguistik.
AlloyDB Omni mendukung semua jenis indeks untuk penelusuran teks lengkap yang didukung PostgreSQL bawaan. Pilihan indeks bergantung pada keseimbangan antara kecepatan penelusuran, waktu build indeks, kecepatan update, dan fungsi penelusuran tertentu yang diperlukan, seperti penelusuran frasa atau peringkat relevansi.
Untuk mengetahui informasi selengkapnya tentang cara membuat dan menggunakan indeks RUM di AlloyDB Omni, lihat Membuat dan mengelola indeks RUM.
Menggabungkan penelusuran teks lengkap dan semantik
Implementasi penelusuran yang paling efektif sering kali menggabungkan penelusuran teks lengkap menggunakan indeks RUM dan penelusuran vektor. Gunakan penelusuran campuran untuk menggabungkan kekuatan pemahaman semantik dan pencocokan kata kunci yang tepat, menggabungkan kumpulan hasil yang berbeda untuk peringkat yang komprehensif.
Misalnya, dalam aplikasi e-commerce, Anda dapat menggunakan penelusuran teks lengkap dengan RUM terlebih dahulu untuk menemukan produk yang berisi kata kunci tertentu seperti "sepatu lari" dan menggunakan penelusuran vektor untuk menemukan hasil berdasarkan kemiripan semantik dengan kueri pengguna yang lebih mendetail, seperti "sepatu yang nyaman untuk latihan jarak jauh". Database kemudian menggabungkan hasil peringkat dari kedua komponen penelusuran ke dalam satu daftar terpadu menggunakan algoritma Reciprocal Rank Fusion (RRF) untuk menghasilkan peringkat akhir.
Untuk mengetahui informasi selengkapnya tentang penggunaan pendekatan campuran ini, lihat Menjalankan penelusuran kemiripan vektor campuran.
Langkah berikutnya
- Pelajari cara Membuat dan mengelola indeks RUM.
- Pelajari cara Menjalankan penelusuran kemiripan vektor campuran.