Lire Requête
Dans Posgres, l'indexation de texte intégral permet de prétraiter les documents et d'enregistrer un index pour une recherche rapide ultérieure. Le prétraitement comprend:
Analyser des documents en jetons.
Conversion de jetons en lexèmes.
Stockage de documents prétraités optimisés pour la recherche.
tsvector
type est utilisé dans Postgres pour la recherche plein texte
tsvector
type est différent de text
type dans les aspects ci-dessous:
Élimine le cas. Les lettres majuscules/minuscules sont identiques
Supprime les mots vides (et, ou non, elle, lui et des centaines d'autres) - car ces mots ne sont pas pertinents pour la recherche de texte
Remplace les synonymes et prend les tiges Word (elephant
-> eleph
). Dans le catalogue de texte intégral, il n'a pas le mot elephant
mais le mot elep
.
Peut (et devrait) être indexé avec Gist et GIN
Classement personnalisé avec poids et ts_rank
Comment la recherche élastique (moteur de recherche) a-t-elle un avantage sur la recherche en texte intégral dans Postgres?
la recherche en texte intégral et elasticsearch sont toutes deux construites sur la même technologie de base indices inversés donc les performances seront à peu près les mêmes.
FTS va être plus facile à déployer.
ES est livré avec lucene,
si vous voulez lucene avec FTS, cela demandera un effort supplémentaire.