Quel mécanisme de stockage des données implémente la recherche en texte intégral dans la base de données PostgreSQL?
sobes.tech IA
Réponse de l'IA
En PostgreSQL, pour implémenter la recherche en texte intégral, on utilise le mécanisme d'index de type GiST (Generalized Search Tree) ou GIN (Generalized Inverted Index). La base est la représentation du texte sous forme de tsvector, une structure qui divise le texte en lexèmes (mots), les normalise et stocke leurs positions.
Pour la recherche, on utilise tsquery, une requête qui est comparée à tsvector. Les index GIN sont particulièrement efficaces pour une recherche rapide sur plusieurs mots, car ils construisent un index inversé permettant de trouver rapidement les documents contenant les lexèmes nécessaires.
Exemple de création d'un index pour la recherche en texte intégral :
CREATE INDEX idx_fts ON documents USING GIN(to_tsvector('russian', content));
Ensuite, on peut exécuter des requêtes :
SELECT * FROM documents WHERE to_tsvector('russian', content) @@ to_tsquery('russian', 'поиск & база');