La raison principale qui a poussé le développement des index
GIN a été la création du
support des recherches de texte complet dans PostgreSQL™ et il arrive fréquemment
qu'une recherche renvoie un gros ensemble de résultats. De
plus, ceci arrive souvent quand la requête contient des mots
très fréquents, de telle façon qu'un gros ensemble de résultats
n'est même pas utile. La lecture des lignes du disque et leur
tri prend beaucoup de temps, ce qui est une situation
inacceptable en production. (Notez que la recherche dans
l'index est en soi très rapide.)
Pour faciliter l'exécution contrôlée de telles requêtes,
GIN a une limite supérieure
souple configurable sur la taille de l'ensemble renvoyée, le
paramètre de configuration gin_fuzzy_search_limit. Par défaut, il est
configuré à 0 (c'est-à-dire sans limite). Si une limite
différente de 0 est renvoyée, alors l'ensemble renvoyé est un
sous-ensemble du résultat complet, choisi au hasard.
« Douce » (
Soft
)
signifie que le nombre réel des résultats renvoyés pourrait
être légèrement différent de la limite spécifiée, suivant la
requête et la qualité du générateur de nombres aléatoires du
système.