Ringkasan penelusuran teks lengkap

Pilih versi dokumentasi:

Penelusuran teks lengkap (FTS) memungkinkan Anda mengidentifikasi dokumen natural language yang memenuhi kueri. Pendekatan ini lebih efektif daripada pencocokan string standar karena memperhitungkan nuansa linguistik, seperti mengabaikan kata-kata umum seperti "the" dan mencocokkan berbagai bentuk kata, seperti "run", "running", atau "ran".

AlloyDB Omni mendukung semua fitur dan kemampuan penelusuran teks lengkap, termasuk dukungan untuk indeks GIN dan GiST.

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 pembuatan 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 stop word umum.
  • Menormalisasi kata ke bentuk dasarnya; misalnya, "run" adalah leksem untuk "run", "runs", "running", dan "ran".

Penggunaan 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 pencocokan 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 apakah tsvector cocok dengan tsquery, sehingga memungkinkan penelusuran yang peka terhadap bahasa.

AlloyDB Omni mendukung semua jenis indeks untuk penelusuran teks lengkap yang didukung PostgreSQL bawaan. Pilihan indeks bergantung pada keseimbangan antara kecepatan penelusuran, waktu pembuatan indeks, kecepatan update, dan fungsi penelusuran spesifik 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 di AlloyDB untuk PostgreSQL.

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", lalu menggunakan penelusuran vektor untuk menemukan hasil berdasarkan kesamaan semantik dengan kueri pengguna yang lebih mendetail, seperti "alas kaki yang nyaman untuk latihan jarak jauh". Database kemudian menggabungkan hasil yang diberi peringkat dari kedua komponen penelusuran menjadi satu daftar terpadu menggunakan algoritma Reciprocal Rank Fusion (RRF) untuk menghasilkan peringkat akhir.

Langkah berikutnya