Le rappel mesure l'efficacité avec laquelle une recherche récupère tous les éléments pertinents pour une requête donnée. Par exemple, imaginez que vous disposez de 100 embeddings, chacun représentant une entité de votre base de données. Vous interrogez vos embeddings avec un vecteur cible et limitez la requête à 10 résultats. Une recherche vectorielle KNN trouve les 10 vecteurs les plus proches à l'aide d'une méthode de calcul par force brute, ce qui permet d'obtenir un rappel de 100 %. AlloyDB AI utilise cette méthode par défaut si aucun index de recherche vectorielle n'est créé ou choisi. Lorsque vous créez un index vectoriel dans AlloyDB Omni, il utilise généralement l'ANN, qui peut partitionner les vecteurs en fonction de leur similarité pour faciliter une récupération plus rapide. Par conséquent, avec l'ANN, les 10 vecteurs renvoyés dans l'exemple précédent ne sont pas forcément les 10 vecteurs les plus proches. Si 9 des 10 vecteurs récupérés sont les plus proches de votre vecteur de requête dans l'espace, votre rappel est de 90 %. Pour en savoir plus, consultez Mesurer le rappel des requêtes vectorielles.
La latence des requêtes définit la vitesse à laquelle les résultats de recherche sont générés. Par exemple, la latence est calculée en fonction du temps passé sur une recherche pour renvoyer les vecteurs après l'envoi d'une requête.
Choisissez votre stratégie de recherche
Lorsque vous effectuez une recherche vectorielle dans AlloyDB Omni, choisissez l'une des stratégies de recherche suivantes :
| Stratégie de recherche | Description | Cas d'utilisation |
| K plus proches voisins (KNN) |
Algorithme qui trouve les points de données des k plus proches voisins d'un point de données de requête donné. Lorsque vous effectuez une recherche vectorielle sans créer d'index, une recherche KNN est effectuée par défaut. Pour améliorer encore les performances de la recherche KNN, ajoutez votre colonne d'embedding et les autres colonnes liées à votre requête au magasin de colonnes dans le moteur de données en colonnes. Vous pouvez ajouter les colonnes manuellement ou utiliser l'organisation automatique en colonnes. |
|
| Voisin le plus proche (ANN) | Algorithme qui trouve approximativement les points de données les plus proches. Les ANN divisent les points de données client existants en petits groupes en fonction de leurs similitudes. |
|
Les deux types d'index vectoriels basés sur ANN courants pour AlloyDB Omni sont ScaNN et HNSW. Suivez les consignes ci-dessous pour déterminer le type d'index le mieux adapté à votre cas d'utilisation :
| Type d'index | Quand l'utiliser ? | Avantages | Accélération du moteur de données en colonnes |
| ScaNN |
Généralement bien adapté aux données de faible dimension ou aux ensembles de données volumineux qui dépassent la mémoire. Évolutivité jusqu'à 10 milliards de vecteurs. |
Offre plusieurs avantages par rapport à HNSW sur PostgreSQL standard :
|
La recherche vectorielle avec l'index ScaNN peut être accélérée par le moteur de données en colonnes AlloyDB Omni. Pour en savoir plus, consultez Accélérer la recherche vectorielle avec le moteur de données en colonnes. |
| HNSW |
Généralement bien adapté aux données de dimension supérieure qui tiennent en grande partie dans le cache en mémoire. S'adapte bien à 10 à 20 millions de vecteurs. |
L'index HNSW accéléré par le moteur de données en colonnes pgvector dans AlloyDB Omni offre des requêtes vectorielles jusqu'à cinq fois plus rapides que PostgreSQL standard. | La recherche vectorielle avec l'index HNSW peut être accélérée par le moteur de données en colonnes AlloyDB Omni. Pour en savoir plus, consultez Accélérer la recherche vectorielle avec le moteur de données en colonnes. |
Google vous recommande de créer un index vectoriel pour optimiser les performances de vos requêtes de recherche vectorielle. Pour en savoir plus sur l'utilisation de l'index ANN pour les recherches de similarité, consultez Créer des index à l'aide de ScaNN.
Pour accélérer votre recherche KNN filtrée, utilisez le moteur de données en colonnes.
Étapes suivantes
- Créer des index et des vecteurs de requête à l'aide de ScaNN
- Créer des index à l'aide de HNSW
- Régler les performances des requêtes vectorielles