27 puan yazan xguru 2023-10-11 | 3 yorum | WhatsApp'ta paylaş
  • Rust tabanlı bir Postgres eklentisi olarak tam metin aramayı geliştirir
  • Modern arama motorlarının kullandığı BM25 algoritmasını temel alır (arama sonuçlarının alaka puanını hesaplar)
  • Postgres'in şu anda kullandığı tsvector tabanlı aramada iki sorun var
    • Performans: büyük ölçekli tablolarda arama yavaştır
    • İşlevsellik: fuzzy search, alaka ince ayarı veya BM25 alaka puanı gibi işlemleri desteklemez
  • Amaç, Postgres ile ElasticSearch'ün arama yetenekleri arasındaki boşluğu kapatarak veri yığınına ElasticSearch benzeri bir hizmet ekleme ihtiyacını ortadan kaldırmak
  • pg_bm25'in özellikleri
    • %100 Postgres native. Harici bağımlılık yok
    • Rust tabanlı Apache Lucene alternatifi Tantivy üzerine kurulu
    • 1 milyon satırın üzerinde, Postgres'in varsayılan arama/sıralama fonksiyonları tsquery/ts_rank ile karşılaştırıldığında 20 kat daha hızlı
    • Fuzzy search, aggregation, highlighting ve alaka ince ayarı desteği
    • ElasticSearch'ün kullandığı BM25 algoritmasıyla alaka puanlaması
    • Gerçek zamanlı arama: yeni veriler manuel yeniden indeksleme olmadan anında aranabilir

3 yorum

 
secret3056 2023-10-13

Görünüşe göre henüz yalnızca İngilizce destekleniyor; belgelerde de chinese_compatible tokenizer üzerinde çalışıldığı yazıyor.
Ayrıca Docker image boyutu da epey büyük. Neredeyse 8 GB; standart Postgres image’ının 400 MB bile etmediğini düşününce, bunun üstüne acaba ne koymuşlar diye merak ediyor insan...

 
cosine20 2023-10-13

Güzelmiş...!

 
wnswl 2023-10-11

Umarım yakında RDS gibi yönetilen DBMS'lerde de desteklenir!