- PostgreSQL menyediakan komponen untuk membangun mesin pencarinya sendiri
- Komponen utamanya adalah tipe data
tsvector dan tsquery, operator pencocokan @@, fungsi pemeringkatan hasil kecocokan, dan tipe indeks GIN
tsvector menyimpan kosakata yang telah dinormalisasi beserta posisinya dalam teks asli
tsquery merepresentasikan kueri yang telah dinormalisasi dan dapat menggabungkan beberapa istilah menggunakan operator logis
- Tipe indeks GIN digunakan untuk kueri
tsvector yang efisien
ts_rank dan ts_rank_cd adalah fungsi pemeringkatan yang mempertimbangkan frekuensi istilah dan kedekatan
- Melalui penyesuaian relevansi, hasil pencarian dapat dikustomisasi berdasarkan kriteria tertentu
- Booster untuk angka, tanggal, dan nilai yang persis sama dapat ditambahkan ke skor peringkat
- Bobot kolom dapat ditetapkan untuk memprioritaskan istilah tertentu dalam hasil pencarian
- Menggunakan
setweight pada kolom judul meningkatkan peringkat judul film yang berisi kata "jedi"
- PostgreSQL tidak secara langsung mendukung pencarian fuzzy atau toleransi salah ketik, tetapi hal itu dapat diimplementasikan menggunakan kemiripan atau jarak Levenshtein
- Pencarian faset, yang membantu pengguna mempersempit cakupan pencarian, dapat diimplementasikan di PostgreSQL menggunakan definisi kategori atau algoritme
- Artikel ini ditutup dengan menyebutkan bahwa perbandingan rinci dengan Elasticsearch akan dibahas pada bagian 2
1 komentar
Opini Hacker News