FTS PostgreSQL : Accélération de 50x avec des optimisations simples

2025-04-09
FTS PostgreSQL : Accélération de 50x avec des optimisations simples

Un benchmark récent de Neon a montré que la recherche textuelle intégrale (FTS) de PostgreSQL était moins performante que pg_search. Cependant, cet article révèle que le benchmark de Neon utilisait une configuration FTS standard non optimisée. En précalculant et en stockant la colonne `tsvector` et en configurant les index GIN avec `fastupdate=off`, une amélioration spectaculaire des performances est obtenue. Des expériences sur un ensemble de données de 10 millions de lignes ont démontré une amélioration de la vitesse d'environ 50x, prouvant qu'une FTS standard correctement optimisée peut rivaliser avec les moteurs de recherche dédiés. L'article explore également VectorChord-BM25, une extension basée sur BM25 qui excelle dans les tâches de classement.

Lire plus

VectorChord-BM25 : Amélioration de la recherche plein texte de PostgreSQL

2025-03-03
VectorChord-BM25 : Amélioration de la recherche plein texte de PostgreSQL

VectorChord-BM25 est une nouvelle extension PostgreSQL utilisant l'algorithme BM25 et l'algorithme Block WeakAnd pour améliorer significativement la vitesse et la précision de la recherche plein texte de PostgreSQL. Il simplifie le processus de recherche et s'intègre parfaitement à PostgreSQL. Comparé à ElasticSearch, VectorChord-BM25 atteint un QPS (Requêtes Par Seconde) 3 fois supérieur en moyenne pour les requêtes Top 1000 et des scores NDCG@10 comparables voire supérieurs, mais nécessite un alignement précis des stratégies de tokenisation pour une comparaison équitable.

Lire plus
Développement recherche plein texte

Améliorer la recherche vectorielle avec le réordonnancement ColBERT dans PostgreSQL

2025-01-24
Améliorer la recherche vectorielle avec le réordonnancement ColBERT dans PostgreSQL

La recherche vectorielle traditionnelle repose sur des plongements de phrases, ce qui peut entraîner une perte de détails granulaires. ColBERT résout ce problème en représentant le texte sous forme de multi-vecteurs au niveau des jetons, conservant ainsi des informations nuancées et améliorant la précision. Cependant, l'interaction au niveau des jetons est coûteuse en calcul. Cet article de blog montre comment combiner la recherche vectorielle au niveau des phrases avec le réordonnancement au niveau des jetons de ColBERT en utilisant les extensions PostgreSQL VectorChord et pgvector. Cette approche effectue une recherche initiale rapide en utilisant des plongements de phrases, suivie d'un réordonnancement avec ColBERT pour de meilleurs résultats. Des améliorations significatives ont été observées sur plusieurs ensembles de données BEIR.

Lire plus
Développement recherche vectorielle