- Rust-आधारित Postgres extension जो Full Text search को बेहतर बनाता है
- नवीनतम search engines द्वारा इस्तेमाल किए जाने वाले BM25 algorithm (search result की relevance score की गणना) पर आधारित
- अभी Postgres जो
tsvector-आधारित search इस्तेमाल करता है, उसमें 2 समस्याएँ हैं
- performance : बड़े tables में search धीमा है
- features : fuzzy search, relevance tuning, या BM25 relevance score जैसे कामों को support नहीं करता
- लक्ष्य Postgres और ElasticSearch के search features के बीच के gap को भरना है, ताकि data stack में ElasticSearch जैसी service लाने की ज़रूरत न पड़े
- pg_bm25 की विशेषताएँ
- 100% Postgres Native. कोई external dependency नहीं
- Rust-आधारित Apache Lucene के विकल्प Tantivy पर आधारित
- 10 लाख से अधिक rows पर Postgres के मूल search/sort functions
tsquery/ts_rank की तुलना में 20 गुना तेज
- fuzzy search, aggregation, highlighting, relevance tuning का support
- ElasticSearch द्वारा इस्तेमाल किए जाने वाले BM25 algorithm का उपयोग करने वाला relevance score
- real-time search : नया data manual reindexing के बिना तुरंत searchable
3 टिप्पणियां
लगता है कि अभी केवल English ही सपोर्ट होता है, और दस्तावेज़ में लिखा है कि
chinese_compatibletokenizer पर काम चल रहा है.इसके अलावा Docker image का साइज़ काफ़ी बड़ा है। लगभग 8GB है; जबकि शुद्ध Postgres image 400MB से भी कम होती है, तो समझ नहीं आता ऊपर आखिर क्या चढ़ा दिया है...
अच्छा है...!
उम्मीद है कि जल्द ही RDS जैसे managed DBMS भी इसे support करने लगेंगे!