- 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
Il semble que seul l’anglais soit encore pris en charge, et la documentation indique qu’un tokenizer
chinese_compatibleest 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...
C’est bien... !
J’espère qu’ils finiront bientôt par le proposer sur des SGBD managés comme RDS !