Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Filtrage des métadonnées
Note
Amazon S3 Vectors est en version préliminaire pour Amazon Simple Storage Service et est sujet à modification.
Le filtrage des métadonnées vous permet de filtrer les résultats des requêtes en fonction d'attributs spécifiques attachés à vos vecteurs. Vous pouvez utiliser des filtres de métadonnées avec des opérations de requête pour trouver des vecteurs répondant à la fois à des critères de similarité et à des conditions de métadonnées spécifiques.
S3 Vectors prend en charge deux types de métadonnées : les métadonnées filtrables et les métadonnées non filtrables. La principale différence réside dans le fait que les métadonnées filtrables peuvent être utilisées dans les filtres de requêtes, mais qu'elles sont soumises à des limites de taille plus strictes, tandis que les métadonnées non filtrables ne peuvent pas être utilisées dans les filtres mais peuvent stocker de plus grandes quantités de données dans les limites de taille fixées. Pour plus d'informations sur les limites de métadonnées, notamment les limites de taille par vecteur et le nombre maximal de clés de métadonnées par vecteur, consultezLimites et restrictions.
S3 Vectors effectue une recherche vectorielle et une évaluation des filtres en tandem. S3 Vectors recherche les vecteurs candidats de l'index pour trouver les K principaux vecteurs similaires tout en validant simultanément si chaque vecteur candidat correspond aux conditions de votre filtre de métadonnées. Par exemple, si vous recherchez des intégrations de films similaires et que vous filtrez par genre='mystère', S3 Vectors renvoie uniquement des intégrations de films similaires dont les métadonnées du genre correspondent à « mystère ». Contrairement à l'application du filtre de métadonnées après la recherche vectorielle, cette approche de filtrage est plus susceptible de trouver des résultats correspondants. Remarque : les requêtes avec filtres peuvent renvoyer moins que les K premiers résultats lorsque l'index vectoriel contient très peu de résultats correspondants.
Métadonnées filtrables
Les métadonnées filtrables vous permettent de filtrer les résultats des requêtes en fonction de valeurs de métadonnées spécifiques. Par défaut, tous les champs de métadonnées sont filtrables dans une requête de similarité, sauf s'ils sont explicitement spécifiés comme non filtrables lors de la création de l'index vectoriel. S3 Vectors prend en charge les types de métadonnées de type chaîne, numérique, booléen et liste avec une limite de taille par vecteur. Le type de métadonnées est idéal pour les attributs que vous souhaitez filtrer, tels que les catégories, les horodatages ou les valeurs de statut.
Si la taille des métadonnées dépasse les limites prises en charge, l'opération d'PutVectorsAPI renvoie une 400 Bad Request
erreur. Pour plus d'informations sur la limite de taille des métadonnées filtrables par vecteur, consultezLimites et restrictions.
Les opérations suivantes peuvent être utilisées avec des métadonnées filtrables.
Opérateur | Types d'entrée valides | Description |
---|---|---|
$eq |
Chaîne, nombre, booléen | Comparaison des correspondances exactes pour des valeurs uniques. Lors de la comparaison avec une valeur de métadonnées de tableau, renvoie true si la valeur d'entrée correspond à un élément du tableau. Par exemple, |
$ne |
Chaîne, nombre, booléen | Comparaison inégale |
$gt |
Nombre | Plus que la comparaison |
$gte |
Nombre | Comparaison supérieure ou égale |
$lt |
Nombre | Moins qu'une comparaison |
$lte |
Nombre | Comparaison inférieure ou égale |
$in |
Tableau de primitives non vide | Correspond à n'importe quelle valeur du tableau |
$nin |
Tableau de primitives non vide | Ne correspond à aucune des valeurs du tableau |
$exists |
Booléen | Vérifiez si le champ existe |
$and |
Tableau de filtres non vide | ET logique de plusieurs conditions |
$or |
Tableau de filtres non vide | OR logique de plusieurs conditions |
Exemples de métadonnées filtrables valides
- Égalité simple
-
{"genre": "documentary"}
Ce filtre correspond aux vecteurs dont la clé de métadonnées du genre est égale à « documentaire ». Lorsque vous ne spécifiez aucun opérateur, S3 Vectors utilise automatiquement l'opérateur $eq.
- Égalité explicite
-
// Example: Exact match {"genre": {"$eq": "documentary"}}
// Example: Not equal to {"genre": {"$ne": "drama"}}
- Comparaison numérique
-
{"year": {"$gt": 2019}}
{"year": {"$gte": 2020}}
{"year": {"$lt": 2020}}
{"year": {"$lte": 2020}}
- Opérations sur les réseaux
-
{"genre": {"$in": ["comedy", "documentary"]}}
{"genre": {"$nin": ["comedy", "documentary"]}}
- Contrôle d'existence
-
{"genre": {"$exists": true}}
Le
$exists
filtre fait correspondre les vecteurs dotés d'une clé de métadonnées « genre », quelle que soit la valeur stockée pour cette clé de métadonnées. - Opérations logiques
-
{"$and": [{"genre": {"$eq": "drama"}}, {"year": {"$gte": 2020}}]}
{"$or": [{"genre": {"$eq": "drama"}}, {"year": {"$gte": 2020}}]}
- Fourchette de prix (plusieurs conditions sur le même champ)
-
{"price": {"$gte": 10, "$lte": 50}}
Pour plus d'informations sur la manière d'interroger des vecteurs à l'aide du filtrage des métadonnées, consultezFiltrage des métadonnées.
Métadonnées non filtrables
Les métadonnées non filtrables ne peuvent pas être utilisées dans les filtres de requête, mais elles peuvent stocker de plus grandes quantités de données contextuelles que les métadonnées filtrables. Il est idéal pour stocker de gros morceaux de texte, des descriptions détaillées ou d'autres informations contextuelles qui n'ont pas besoin d'être consultables mais qui peuvent être renvoyées avec les résultats de la requête. Par exemple, vous pouvez stocker le texte complet du document, les descriptions d'images ou les spécifications détaillées des produits sous forme de métadonnées non filtrables.
Les clés de métadonnées non filtrables doivent être configurées de manière explicite lors de la création de l'index vectoriel. Une fois qu'une clé de métadonnées est désignée comme non filtrable lors de la création de l'index, elle ne peut pas être modifiée pour être filtrée ultérieurement. Vous pouvez configurer plusieurs clés de métadonnées comme non filtrables par index vectoriel, chaque nom de clé de métadonnées étant limité à 63 caractères. Pour plus d'informations sur le nombre maximal de clés de métadonnées non filtrables autorisées par index vectoriel, consultez. Limites et restrictions
Bien que vous ne puissiez pas filtrer les métadonnées non filtrables, vous pouvez les récupérer en même temps que les résultats des requêtes à l'aide du return-metadata
paramètre. Vous pouvez utiliser des métadonnées non filtrables pour certains cas d'utilisation, comme suit.
-
Utilisez-le pour fournir un contexte à votre application sans analyser des sources de données distinctes.
-
Stockez des blocs de texte plus volumineux qui dépasseraient les limites de taille des métadonnées filtrables.
-
Incluez-le dans les exportations vectorielles à l'aide de l'opération ListVectorsAPI.
Pour plus d'informations sur la configuration de métadonnées non filtrables, consultez. Création d'un index vectoriel dans un compartiment vectoriel