- PostgreSQL fournit les composants nécessaires pour créer son propre moteur de recherche
- Les composants clés sont les types de données
tsvector et tsquery, l’opérateur de correspondance @@, les fonctions de classement des résultats et le type d’index GIN
tsvector stocke le vocabulaire normalisé ainsi que sa position dans le texte source
tsquery représente une requête normalisée et peut combiner plusieurs termes à l’aide d’opérateurs logiques
- Le type d’index GIN est utilisé pour interroger efficacement
tsvector
ts_rank et ts_rank_cd sont des fonctions de classement qui prennent en compte la fréquence des termes et leur proximité
- L’ajustement de la pertinence permet de personnaliser les résultats de recherche selon des critères spécifiques
- Des boosts pour les nombres, les dates et les valeurs exactes peuvent être ajoutés au score de classement
- Il est possible d’attribuer des poids aux colonnes afin de donner la priorité à certains termes dans les résultats de recherche
- L’utilisation de
setweight sur la colonne du titre améliore le classement des titres de films contenant le mot "jedi"
- PostgreSQL ne prend pas directement en charge la recherche floue ni la tolérance aux fautes de frappe, mais cela peut être implémenté à l’aide de la similarité ou de la distance de Levenshtein
- La recherche à facettes, qui aide les utilisateurs à affiner le périmètre de recherche, peut être implémentée dans PostgreSQL à l’aide de définitions de catégories ou d’algorithmes
- L’article se conclut en indiquant qu’une comparaison détaillée avec Elasticsearch sera proposée dans une deuxième partie
1 commentaires
Avis Hacker News