PostgreSQL Menghadirkan pgx-bm25 1.0: Metode Akses Indeks BM25 Asli di Postgres 17 dan 18
Pencarian teks terperingkat berbasis algoritma Okapi BM25 murni resmi hadir sebagai metode akses indeks native di PostgreSQL, menyatukan retrieval leksikal dan vektor dalam satu transaksi ACID.
Redaksi tveniu
Divisi Analisis & Riset
Komunitas pengembang PostgreSQL telah resmi merilis pgx-bm25 versi 1.0, ekstensi yang mengimplementasikan metode akses indeks (Index Access Method - AM) asli untuk algoritma information retrieval Okapi BM25 langsung di dalam PostgreSQL 17 dan 18. Peluncuran ini menjadi tonggak penting dalam penyederhanaan arsitektur data modern.
Keterbatasan tsvector Tradisional vs Algoritma Okapi BM25
Selama bertahun-tahun, kapabilitas pencarian teks bawaan PostgreSQL mengandalkan tipe data tsvector yang diindeks dengan GIN (Generalized Inverted Index). Meskipun cepat dalam pencarian boolean (AND/OR), sistem ini memiliki kelemahan fundamental dalam pemeringkatan relevansi (ranking) karena tidak mengintegrasikan kurva saturasi frekuensi istilah dan normalisasi panjang dokumen dinamis.
Algoritma Okapi BM25 memperbaiki kelemahan tersebut dengan memodelkan probabilitas relevansi teks secara matematis melalui parameter k1 (saturasi frekuensi kata) dan b (kompensasi panjang dokumen). Hal ini mencegah dokumen panjang mendominasi hasil pencarian secara artifisial.
Implementasi Custom Index Access Method (AM)
Berbeda dengan solusi pihak ketiga yang dijalankan sebagai daemon proses eksternal di luar engine Postgres, pgx-bm25 dibangun langsung menggunakan API internal Custom Access Method C/Rust PostgreSQL. Indeks BM25 berpartisipasi penuh dalam mekanisme Write-Ahead Logging (WAL), snapshot isolasi transaksi multi-versi (MVCC), dan replikasi streaming bawaan.
- Implementasi sebagai native index access method tanpa dependensi daemon sidecar eksternal
- Peningkatan throughput pencarian hingga 3,2 kali lipat dibandingkan kueri tsvector ranking konvensional
- Durabilitas transaksional ACID penuh dengan konsistensi indeks instan saat operasi INSERT/UPDATE/DELETE
- Sintaks fusi kueri mulus menggabungkan kemiripan pgvector dengan pemeringkatan kata kunci BM25
- Pembersihan otomatis struktur inverted list terintegrasi dengan siklus VACUUM Postgres
Reciprocal Rank Fusion (RRF) dengan pgvector
Dalam pipeline RAG modern, pencarian semantik vektor murni sering mengalami kegagalan saat mencari kata kunci unik seperti nomor seri komponen, kode error, atau nama produk spesifik. Pendekatan hibrida yang menggabungkan dense vector similarity dengan sparse lexical BM25 kini dapat dieksekusi dalam satu kueri SQL menggunakan algoritma Reciprocal Rank Fusion (RRF).
Kueri SQL tunggal kini dapat mengembalikan hasil gabungan dengan latensi sub-10 milidetik, menghapus kebutuhan sinkronisasi data antar basis data relasional dan mesin pencari eksternal.
Penyederhanaan Operasional: Eliminasi Pipeline CDC
Manfaat arsitektural terbesar bagi tim data engineering adalah eliminasi pipeline Change-Data-Capture (CDC) berbasis Debezium atau Kafka yang rapuh. Arsitek sistem tidak perlu lagi memelihara klaster Elasticsearch atau OpenSearch terpisah hanya demi fitur pencarian teks terperingkat.
“Menyatukan pemeringkatan leksikal BM25 dan pencarian vektor ke dalam satu mesin transaksional memadamkan satu kategori besar kegagalan sinkronisasi terdistribusi di lingkungan produksi.”
pgx-bm25 1.0 kini telah tersedia melalui paket PGXN dan didukung oleh penyedia layanan managed cloud database terkemuka di seluruh dunia.
Rujukan & Sumber Primer
Artikel Terkait
Anthropic Merilis Claude Haiku 5.5: Pemangkasan Biaya Komputasi 75% untuk Skala Produksi Agen
Model paling ramping dari keluarga Claude kini menawarkan latensi sub-detik dengan efisiensi biaya inferensi hingga tiga perempat lebih hemat, dirancang khusus untuk eksekusi workflow agen otonom berkelanjutan.