ParadeDB ผู้สร้างดิสโทรของ PostgreSQL เปิดส่วนขยาย pg_bm25 สำหรับการสร้าง search engine ด้วย PostgreSQL โดยมีเป้าหมายคือการทดแทน Elasticsearch
pg_bm25 อาศัยการสร้าง index แบบ BM25 ที่สามารถหาเอกสารโดยไม่ได้เรียงลำดับแค่พบคำค้นหาเท่านั้น แต่ให้คะแนนจำนวนครั้งที่พบคำค้น, ให้ความสำคัญกับคำที่พบได้น้อยเป็นพิเศษ, ให้ความสำคัญกับเอกสารที่สั้นกว่า โดย Elasticsearch เองก็ใช้ BM25 ในการค้นเอกสารเช่นกัน
โครงการสร้างด้วยไลบรารี Tantivy ภาษา Rust ที่ทำงานคล้ายกับ Apache Lucene ที่ Elasticsearch ใช้ และใช้เฟรมเวิร์ค pgrx สำหรับการสร้างส่วนขยาย PostgreSQL ในภาษา Rust จากนั้นเพิ่ม opertor ใหม่ @@@
เลียนแบบ @@
ของ PostgreSQL เอง
การติดตั้ง pg_bm25 ตอนนี้มีสองทาง คือ คอมไพล์เอง และใช้งานผ่าน ParadeDB
ที่มา - ParadeDB