27 points par xguru 2023-10-11 | 3 commentaires | Partager sur WhatsApp
  • Une extension Postgres basée sur Rust qui améliore la recherche full text
  • Basée sur l’algorithme BM25 utilisé par les moteurs de recherche modernes pour calculer le score de pertinence des résultats
  • La recherche actuelle de Postgres basée sur tsvector présente aujourd’hui deux problèmes
    • Performance : la recherche est lente sur les tables de grande taille
    • Fonctionnalités : ne prend pas en charge la recherche floue, le réglage de la pertinence ou des tâches comme le score de pertinence BM25
  • L’objectif est de combler l’écart entre les capacités de recherche de Postgres et d’ElasticSearch afin qu’il ne soit plus nécessaire d’ajouter un service comme ElasticSearch à la stack de données
  • Fonctionnalités de pg_bm25
    • 100 % natif Postgres, sans dépendance externe
    • Basé sur Tantivy, une alternative à Apache Lucene écrite en Rust
    • 20 fois plus rapide que tsquery/ts_rank, les fonctions de recherche et de tri par défaut de Postgres, sur plus d’un million de rows
    • Prend en charge la recherche floue, les agrégations, le highlighting et le réglage de la pertinence
    • Score de pertinence fondé sur l’algorithme BM25 utilisé par ElasticSearch
    • Recherche en temps réel : les nouvelles données peuvent être recherchées immédiatement sans réindexation manuelle

3 commentaires

 
secret3056 2023-10-13

Il semble que seul l’anglais soit encore pris en charge, et la documentation indique qu’un tokenizer chinese_compatible est en cours de développement.
En plus, la taille de l’image Docker est assez énorme. On est presque à 8 Go ; quand on voit que l’image Postgres standard fait moins de 400 Mo, on se demande bien ce qu’ils ont pu empiler par-dessus...

 
cosine20 2023-10-13

C’est bien... !

 
wnswl 2023-10-11

J’espère qu’ils finiront bientôt par le proposer sur des SGBD managés comme RDS !