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.
Tutoriel : Votre première recherche vectorielle
Imaginez un catalogue de produits dans lequel les acheteurs décrivent ce qu'ils veulent avec leurs propres mots au lieu de faire correspondre des mots clés exacts. Vous pouvez stocker une intégration vectorielle de chaque description de produit dans DynamoDB, puis interroger un index vectoriel pour trouver les correspondances les plus proches.
Ce didacticiel crée un tableau avec un index vectoriel, génère des intégrations en 1024 dimensions avec Amazon Bedrock Titan Text Embeddings V2, charge 50 produits et exécute une recherche de similarité qui renvoie les 5 correspondances les plus proches. Chaque commande peut être collée directement dans un terminal. Pour plus d'informations sur le fonctionnement des intégrations avec DynamoDB, consultez. Génération d'intégrations vectorielles
À propos de la balance et du rappel
Un indice des vecteurs de production contient des millions, voire des milliards de vecteurs. Les index vectoriels utilisent la recherche approximative du voisin le plus proche, et les caractéristiques de rappel de cette approche ne deviennent observables qu'à une échelle beaucoup plus grande. Considérez le catalogue de 50 articles ici comme une démonstration des mécanismes. Pour obtenir des conseils sur le dimensionnement et le réglage, voirMeilleures pratiques pour les index vectoriels.
Conditions préalables
Avant de commencer, assurez-vous de disposer des éléments suivants :
-
AWS CLI version 2.36.16 ou ultérieure. La prise en charge des index vectoriels a été ajoutée aux AWS SDK AWS CLI et aux kits de développement logiciel dans la mise à jour du modèle de service publiée le 4 août 2026. Les versions précédentes ne reconnaissaient ni le
--vector-indexesparamètre ni lasearch-vectorscommande. Vérifiez votre versionaws --versionet mettez-la à niveau si nécessaire. Si vous utilisez un AWS SDK au lieu de AWS CLI, vous aurez besoin de la versionbotocore1.43.64 ou ultérieure, ou de la version équivalente de votre SDK linguistique. -
Informations d'identification avec autorisations pour les actions DynamoDB
CreateTable,DescribeTable,PutItem,BatchWriteItem,Scan, etSearchVectorsUpdateTableDeleteTable, et pour l'action Amazon Bedrock.InvokeModeldynamodb:SearchVectorsest une nouvelle action. Par conséquent, les politiques existantes qui accordent un accès en lecture à DynamoDB ne l'incluent pas. -
Accès au modèle Titan Text Embeddings V2 activé dans Amazon Bedrock pour votre compte et votre région. L'accès au modèle Amazon Bedrock est accordé par compte et par région. Vous devez donc activer le modèle avant de pouvoir l'appeler.
-
jqinstallé pour remodeler la sortie du modèle au format DynamoDB. -
Région dans laquelle les index vectoriels DynamoDB et Amazon Bedrock Titan Text Embeddings V2 sont disponibles. La disponibilité du modèle Amazon Bedrock varie selon les régions et est généralement plus restreinte que la couverture régionale DynamoDB. Vérifiez donc les deux avant de choisir une région. Pour en savoir plus sur la disponibilité des modèles Amazon Bedrock, consultez la section Prise en charge des modèles par AWS région dans le guide de l'utilisateur d'Amazon Bedrock.
Frais
Ce didacticiel entraîne des frais pour les appels au modèle Amazon Bedrock et le stockage DynamoDB. Il effectue 51 appels d'intégration, chacun étant facturé comme une demande d'inférence Amazon Bedrock, sur de courtes entrées d'une seule phrase. Les frais de stockage DynamoDB s'appliquent tant que la table et l'index vectoriel existent.
Confirmez la région que vous utilisez
Toutes les commandes de ce didacticiel doivent être exécutées dans la même région. Vérifiez la région qu'il AWS CLI utilisera réellement avant de commencer, car elle AWS_REGION a priorité surAWS_DEFAULT_REGION, et les deux ont priorité sur le region paramètre de votre fichier de AWS CLI configuration. Une AWS_REGION valeur errante dans votre shell crée la table ailleurs que dans la région que vous souhaitiez, et le modèle Amazon Bedrock n'y est peut-être pas activé. Pour lever tout doute, passez --region
explicitement chaque commande.region
SearchVectorsutilise un point de terminaison distinct
SearchVectorsaboutit à un point de terminaison de recherche dédié plutôt qu'au point de terminaison DynamoDB standard. Dans une région commerciale, les demandes sont adressées àsearch-dynamodb., tandis que toutes les autres opérations de ce didacticiel sont envoyées àregion.amazonaws.comdynamodb.. Les variantes FIPS et Dual-Stack suivent le même schéma. Cela a deux conséquences :region.amazonaws.com
-
Si votre réseau restreint le trafic sortant via un point de terminaison VPC, un proxy ou une liste d'autorisation de sortie, vous devez également autoriser le nom d'hôte de recherche. Dans le cas contraire
CreateTable, les opérations d'écriture réussissent etSearchVectorséchouent uniquement, généralement avec une erreur de connexion qui n'en indique pas la cause. -
Ne pas utiliser
--endpoint-urlpour remplacer le point de terminaison DynamoDB pour ces commandes. Un seul remplacement ne peut pas servir les deux noms d'hôte et interrompra le routage des recherches.
-
Créez un tableau avec un index vectoriel. Cela crée une
Productstable avec un index vectoriel nomméDescriptionIndexsur l'DescriptionVectorattribut. L'index utilise la fonction deCOSINEdistance avec 1024 dimensions pour correspondre à la sortie Titan Text Embeddings V2. Aucune clé de partition d'index vectoriel n'étant définie, vous n'avez pas besoinSearchConditionExpressionde recherche.aws dynamodb create-table \ --table-name Products \ --attribute-definitions AttributeName=ProductId,AttributeType=S \ --key-schema AttributeName=ProductId,KeyType=HASH \ --billing-mode PAY_PER_REQUEST \ --vector-indexes \ "[ { \"IndexName\": \"DescriptionIndex\", \"VectorAttribute\": {\"AttributeName\": \"DescriptionVector\"}, \"Projection\": {\"ProjectionType\": \"ALL\"}, \"Dimensions\": 1024, \"DistanceFunction\": \"COSINE\" } ]"Cet exemple utilise
ProjectionTypeofALLpour que chaque attribut soit disponible dans les résultats de recherche. Si vous l'utilisez à laINCLUDEplace, notez que le budget d'attributs non clés projeté est partagé : l'attribut vectoriel compte comme un attribut et chaque élément du schémaINLINE_FILTERde recherche compte comme un seul.HASHles éléments du schéma de recherche ne sont pas pris en compte dans la limite. -
Attendez que l'index soit actif. Exécutez-le jusqu'à ce que ce
IndexStatussoit leACTIVEcas.aws dynamodb describe-table \ --table-name Products \ --query 'Table.VectorIndexes[0].[IndexName,IndexStatus,Backfilling]'Car un index créé dans le cadre de
CreateTable, comme dans ce didacticiel, n'Backfillingest pas signalé et la commandenullle renvoie.IndexStatusUtilisez-le seul comme signal dans ce cas.Backfillingest indiqué pour un index vectoriel que vous ajoutez à une table existante avecUpdateTable. Dans ce cas, attendez que «IndexStatusest »ACTIVEet «Backfillingest »falseavant de vous fier aux résultats de recherche complets.Attendez l'index, pas seulement le tableau
Ne pas utiliser
aws dynamodb wait table-existspour limiter la recherche. Ce serveur continueTable.TableStatus, ce qui devientACTIVEalors que l'indice vectoriel peut encore êtreCREATING. Il n'y a pas de serveur pour la préparation de l'indice vectoriel, vous devez donc effectuerDescribeTablele sondage comme indiqué. La recherche dans un index qui ne l'est pas encoreACTIVEéchoue et la recherche pendant le remplissage peut renvoyer des résultats incomplets.Pour la même raison, vous ne pouvez pas supprimer la table tant que la création de chaque index vectoriel n'est pas terminée.
DeleteTablerenvoieResourceInUseExceptionle message « Impossible de supprimer la table pendant la création, la mise à jour ou la suppression des index ». -
Créez le catalogue de produits. Enregistrez les 50 produits suivants dans un fichier séparé par des tabulations nommé.
products.tsvChaque ligne contient un identifiant de produit, un nom et une description en une phrase. Le catalogue contient dix groupes de cinq produits connexes, ce qui facilite l'interprétation des résultats de recherche de la dernière étape.p01 Insulated Travel Mug A vacuum insulated stainless steel mug that keeps hot drinks warm for up to twelve hours. p02 Stovetop Espresso Maker A compact aluminum pot that brews strong espresso style coffee directly on a gas or electric burner. p03 Manual Burr Coffee Grinder A hand cranked grinder with adjustable ceramic burrs for consistent coffee grounds. p04 Pour Over Coffee Dripper A ceramic cone that sits on a mug and brews a single cup of filter coffee. p05 Electric Milk Frother A handheld battery powered whisk that creates dense foam for lattes and cappuccinos. p06 Lightweight Running Shoe A breathable mesh road shoe with cushioned foam midsole for daily training runs. p07 Trail Running Shoe An aggressive lugged outsole shoe built for grip on loose gravel and muddy trails. p08 Moisture Wicking Running Socks Ankle height socks knitted from synthetic yarn that pulls sweat away from the skin. p09 Reflective Running Vest A lightweight vest with high visibility strips for running safely after dark. p10 Hydration Waist Belt An elastic belt that holds two small water flasks and a phone during long runs. p11 Ergonomic Mesh Office Chair An adjustable desk chair with breathable mesh back and lumbar support for long work sessions. p12 Sit Stand Desk Converter A height adjustable platform that raises a monitor and keyboard for standing work. p13 Monitor Arm Mount A clamp mounted articulating arm that lifts a display off the desk surface. p14 Under Desk Footrest An angled cushioned platform that supports the feet and improves seated posture. p15 Wireless Split Keyboard A two piece keyboard that separates for a natural shoulder width typing position. p16 Noise Cancelling Headphones Over ear wireless headphones that actively silence engine noise on long flights. p17 Wireless Earbuds Compact in ear buds with a charging case and multi hour battery for commuting. p18 Portable Bluetooth Speaker A water resistant rechargeable speaker sized to fit in a backpack side pocket. p19 Studio Monitor Headphones Wired closed back headphones with flat frequency response for audio mixing. p20 Wired Lapel Microphone A small clip on microphone for recording clear speech during interviews. p21 Four Season Backpacking Tent A double wall tent with an aluminum pole set rated for wind and heavy rain. p22 Down Sleeping Bag A mummy shaped bag filled with compressible down insulation for cold weather camping. p23 Inflatable Sleeping Pad A lightweight pad that inflates in a few breaths and packs down to bottle size. p24 Canister Camping Stove A screw on burner that boils water quickly using a compact fuel canister. p25 Rechargeable Camp Lantern A collapsible lantern with adjustable brightness and a built in battery. p26 Cast Iron Skillet A preseasoned heavy pan that holds heat evenly for searing and oven baking. p27 Nonstick Frying Pan A coated aluminum pan that releases eggs and fish without added oil. p28 Stainless Steel Stock Pot A tall wide pot for boiling pasta and simmering large batches of soup. p29 Enameled Dutch Oven A heavy lidded pot that moves from stovetop to oven for slow braising. p30 Bamboo Cutting Board A large reversible board with a juice groove around the edge. p31 Padded Laptop Backpack A water resistant pack with a suspended sleeve that protects a fifteen inch laptop. p32 Slim Laptop Sleeve A close fitting neoprene case that shields a notebook inside a larger bag. p33 Rolling Carry On Suitcase A hard shell four wheel case sized to fit most overhead cabin bins. p34 Packing Cube Set Zippered fabric cubes that compress clothing and organize a suitcase. p35 Leather Messenger Bag A single strap shoulder bag with a padded compartment and interior pockets. p36 Daily Facial Moisturizer A light lotion with humectants that hydrates skin without leaving residue. p37 Mineral Sunscreen Lotion A broad spectrum zinc based sunscreen formulated for sensitive facial skin. p38 Gentle Foaming Cleanser A low pH face wash that removes oil and sunscreen without stripping the skin. p39 Vitamin C Serum A brightening serum applied before moisturizer to even skin tone over time. p40 Overnight Repair Cream A rich night cream with ceramides that restores the skin barrier while sleeping. p41 Stainless Steel Dog Bowl A weighted nonslip bowl that resists tipping during enthusiastic feeding. p42 Padded Dog Harness An adjustable chest harness that distributes pull away from the neck on walks. p43 Retractable Dog Leash A spring loaded leash that extends and locks at several walking lengths. p44 Interactive Cat Puzzle Feeder A slow feed tray that makes a cat work for dry food and eat more slowly. p45 Self Cleaning Litter Box An enclosed box with a raking mechanism that sifts waste after each use. p46 Bypass Pruning Shears Sharp hardened blades that make clean cuts on green stems and small branches. p47 Long Handled Garden Spade A steel bladed spade with a wooden shaft for turning soil and digging beds. p48 Adjustable Hose Spray Nozzle A metal nozzle that shifts from a fine mist to a strong jet stream. p49 Raised Garden Bed Kit Interlocking cedar panels that assemble into an elevated planting box. p50 Drip Irrigation Starter Kit Tubing and emitters that deliver water slowly to the base of each plant.Le séparateur entre les trois champs doit être un caractère de tabulation littéral. Si vous copiez le catalogue depuis un navigateur, vérifiez que les onglets ont survécu avant de continuer.
-
Générez une intégration pour un produit. Lancez d'abord un seul appel d'intégration pour confirmer que l'accès à votre modèle Amazon Bedrock fonctionne. Le
inputTextchamp contient le texte à intégrer,dimensionsdéfinit la taille de sortie (les valeurs valides sont 256, 512 ou 1024) etnormalizeproduit des vecteurs de longueur unitaire, ce qui est recommandé pour la recherche de similarité en cosinus.mkdir -p emb aws bedrock-runtime invoke-model \ --model-id amazon.titan-embed-text-v2:0 \ --body '{"inputText":"A vacuum insulated stainless steel mug that keeps hot drinks warm for up to twelve hours.","dimensions":1024,"normalize":true}' \ --cli-binary-format raw-in-base64-out \ --content-type application/json \ --accept application/json \ emb/p01.jsonLe
--cli-binary-format raw-in-base64-outdrapeau est obligatoire. AWS CLI La v2 utilise par défaut le codage base64 pour les paramètres binaires. Ainsi, sans cet indicateur, le corps JSON brut ne sera pas envoyé correctement. La réponse est écriteemb/p01.jsonet contient unembeddingtableau de 1024 nombres à virgule flottante. Confirmez le nombre de dimensions.jq '.embedding | length' emb/p01.jsonLa sortie est alors
1024. -
Écrivez le premier produit. Transformez l'incorporation au format d'élément DynamoDB et écrivez-le. L'attribut vectoriel stocké utilise le type DynamoDB
L(liste) encapsulant chaque nombre dans unNtype.jq '{"ProductId":{"S":"p01"},"Title":{"S":"Insulated Travel Mug"},"DescriptionVector":{"L":[.embedding[]|{"N":(.|tostring)}]}}' emb/p01.json > item-p01.json aws dynamodb put-item --table-name Products --item file://item-p01.jsonTaille du vecteur et limites d'éléments
Un vecteur de 1024 dimensions ajoute environ 32 Ko à la charge utile de la demande et environ 5 Ko à l'élément stocké, bien en deçà de la limite de taille d'élément DynamoDB de 400 Ko. Le nombre de dimensions est le principal facteur qui détermine la taille des éléments lorsque vous stockez des intégrations.
-
Intégrez les produits restants. Cette boucle génère une intégration pour chaque produit restant. Il ignore tout fichier existant, vous pouvez donc le réexécuter en toute sécurité en cas d'échec d'un appel.
while IFS=$'\t' read -r id title description; do [ -s "emb/$id.json" ] && continue body=$(jq -n --arg t "$description" '{inputText:$t,dimensions:1024,normalize:true}') aws bedrock-runtime invoke-model \ --model-id amazon.titan-embed-text-v2:0 \ --body "$body" \ --cli-binary-format raw-in-base64-out \ --content-type application/json \ --accept application/json \ "emb/$id.json" >/dev/null || echo "FAILED $id" done < products.tsv ls emb/*.json | wc -lVous devez compter 50 avant de continuer. Si un appel est affiché
FAILED, relancez la boucle ; elle réessaie uniquement les fichiers manquants.InvokeModel quotas tarifaires
Amazon Bedrock applique des quotas de demande à.
InvokeModelSi vous modifiez cette boucle pour émettre des appels en parallèle, attendez-vous à des exceptions de limitation sur certains appels et vérifiez toujours le nombre final de fichiers plutôt que de supposer que chaque appel a réussi. Un catalogue partiellement intégré se charge sans erreur et produit des résultats de recherche qui omettent silencieusement les produits manquants. -
Chargez les produits restants. Créez des charges utiles de demandes de 25 éléments chacune, soit le maximum
BatchWriteItemaccepté.batch=0 count=0 echo -n '{"Products":[' > batch-0.json while IFS=$'\t' read -r id title description; do if [ "$count" -eq 25 ]; then echo ']}' >> "batch-$batch.json" batch=$((batch+1)); count=0 echo -n '{"Products":[' > "batch-$batch.json" fi [ "$count" -gt 0 ] && echo -n ',' >> "batch-$batch.json" jq -c --arg id "$id" --arg title "$title" \ '{PutRequest:{Item:{ProductId:{S:$id},Title:{S:$title}, DescriptionVector:{L:[.embedding[]|{"N":(.|tostring)}]}}}}' \ "emb/$id.json" >> "batch-$batch.json" count=$((count+1)) done < <(tail -n +2 products.tsv) echo ']}' >> "batch-$batch.json"La boucle se lit à partir d'une redirection plutôt que d'un tube, car une
whileboucle canalisée s'exécute dans un sous-shell de certains interpréteurs, ce qui supprime lescountvaleursbatchet et produit des fichiers batch mal formés.Soumettez chaque lot.
BatchWriteItempeut partiellement réussir, alors soumettez à nouveau tout ce qu'il renvoie.UnprocessedItemsfor f in batch-*.json; do cp "$f" pending.json for attempt in 1 2 3 4 5; do aws dynamodb batch-write-item \ --request-items file://pending.json \ --output json > resp.json left=$(jq '(.UnprocessedItems.Products // []) | length' resp.json) echo "$f attempt $attempt: unprocessed=$left" [ "$left" -eq 0 ] && break jq '.UnprocessedItems' resp.json > pending.json sleep 2 done doneVérifiez que les 50 éléments sont présents.
aws dynamodb scan --table-name Products --select COUNT --query 'Count'ItemCount les mises à jour sont retardées
Les
IndexSizeBytesvaleursItemCountet déclarées pourDescribeTableun index vectoriel sont mises à jour toutes les six heures environ. Ainsi, immédiatement après un chargement, elles peuvent toujours être lues0même si chaque élément a été écrit. UtilisezScanwith--select COUNT, comme indiqué, pour vérifier une charge. Ne considérez pas un zéroItemCountcomme un échec de chargement. -
Générez une requête incorporant et recherchez. Intégrez la phrase de recherche avec le même modèle et le même nombre de dimensions que ceux que vous avez utilisés pour les éléments stockés.
aws bedrock-runtime invoke-model \ --model-id amazon.titan-embed-text-v2:0 \ --body '{"inputText":"How can I make my desk more comfortable to work at","dimensions":1024,"normalize":true}' \ --cli-binary-format raw-in-base64-out \ --content-type application/json \ --accept application/json \ embedding-query.jsonSearchVector le format diffère du format vectoriel stocké
Lorsque vous stockez un vecteur dans un attribut d'élément, vous l'encapsulez dans un type
L(liste) :{"L":[{"N":"0.123"},...]}. Lorsque vous passez un vecteur de requête àSearchVectors, vous utilisez un tableau simple deNvaleurs sans leLwrapper :[{"N":"0.123"},...]. Lajqtransformation suivante diffère de celle que vous avez utilisée pour les éléments stockés pour cette raison. Pour de plus amples informations, veuillez consulter Recherche de base.jq '[.embedding[]|{"N":(.|tostring)}]' embedding-query.json > query-vector.json aws dynamodb search-vectors \ --table-name Products \ --index-name DescriptionIndex \ --search-vector file://query-vector.json \ --top-k 5 \ --projection-expression "ProductId, Title" \ --return-consumed-capacity TOTALLe vecteur de requête et les vecteurs stockés doivent provenir du même modèle d'intégration et doivent avoir le même nombre de dimensions. L'utilisation d'un modèle ou d'un nombre de dimensions différent produit des résultats inutiles ou une erreur de validation.
-
Lisez les résultats. DynamoDB renvoie les résultats triés par similarité, en commençant par l'élément le plus similaire. Chaque résultat contient les
Itemattributs projetés etScorea.{ "SearchResults": [ { "Item": { "ProductId": { "S": "p11" }, "Title": { "S": "Ergonomic Mesh Office Chair" } }, "Score": 0.6130197048187256 }, { "Item": { "ProductId": { "S": "p12" }, "Title": { "S": "Sit Stand Desk Converter" } }, "Score": 0.781868577003479 }, { "Item": { "ProductId": { "S": "p14" }, "Title": { "S": "Under Desk Footrest" } }, "Score": 0.816369354724884 }, { "Item": { "ProductId": { "S": "p13" }, "Title": { "S": "Monitor Arm Mount" } }, "Score": 0.8283305168151855 }, { "Item": { "ProductId": { "S": "p15" }, "Title": { "S": "Wireless Split Keyboard" } }, "Score": 0.8469693064689636 } ], "ConsumedCapacity": { "VectorSearchRequestBytes": 31449.0 } }Les scores dépendent du modèle d'intégration et du texte d'entrée exact. Vos valeurs peuvent donc légèrement différer. Ce qui compte, c'est quels articles ont été sélectionnés et dans quel ordre. La requête ne contenait pas les mots chaise, écran ou clavier, mais la recherche a renvoyé les cinq produits de bureau et de bureau devant les 45 autres articles du catalogue. Rien du café, du camping ou des groupes d'animaux de compagnie n'apparaît.
Essayez d'autres requêtes pour constater le même comportement avec différents groupes. Répétez l'étape précédente
"Something to brew fresh coffee at home"et vous obtiendrez les meilleurs résultats avec la machine à expresso, le compte-gouttes et le mousseur à lait. Répétez cette opération"Keeping my dog safe on walks"et la laisse et le harnais passeront en premier, suivis des articles qui ne sont que faiblement liés, car le catalogue ne contient que deux produits qui se ressemblent étroitement. Ce dernier cas mérite d'être noté : la recherche renvoie toujours le nombre d'articles que vous demandez, même lorsque le catalogue ne contient pas autant de bonnes correspondances. Utilisez lesScorevaleurs, et non le nombre de résultats, pour évaluer la qualité des matchs.La façon de lire une partition dépend de la fonction de distance utilisée par l'indice :
-
COSINEetEUCLIDEANrenvoyez les éléments avec les scores les plus faibles, de sorte que le score le plus bas soit plus similaire. Les scores de cosinus vont de 0 pour une direction identique à 2 pour une direction opposée. -
DOT_PRODUCTrenvoie les éléments ayant obtenu les scores les plus élevés, donc plus élevé est plus similaire.
Cet indice utilise
COSINE, donc le premier résultat obtient le score le plus bas. La recherche avec un texte identique à une description enregistrée renvoie cet élément en premier avec un score égal ou proche de zéro. -
Nettoyage
Pour éviter des frais permanents, supprimez les ressources que vous avez créées dans ce didacticiel. Le stockage de l'index vectoriel est facturé tant que l'index existe, que vous effectuiez des recherches sur celui-ci ou non.
Pour supprimer l'index vectoriel tout en conservant le Products tableau et ses éléments, utilisezUpdateTable. Les éléments restent dans le tableau et seul l'index est supprimé.
aws dynamodb update-table \ --table-name Products \ --vector-index-updates \ "[ {\"Delete\": {\"IndexName\": \"DescriptionIndex\"}} ]"
Pour supprimer le tableau et son index vectoriel en même temps, supprimez le tableau.
aws dynamodb delete-table --table-name Products
Vérifiez que la table a disparu. La commande suivante renvoie un une ResourceNotFoundException fois la suppression terminée.
aws dynamodb describe-table --table-name Products
Pour plus d'informations sur la suppression d'un index vectoriel d'une table que vous souhaitez conserver, consultezSuppression d’un index vectoriel.
Étapes suivantes
Après avoir effectué cette recherche vectorielle de base, explorez ces sujets connexes.
-
Filtrer les résultats de recherche à l'aide d'une clé de partition d'index vectoriel et de filtres intégrés — voirRecherche de base.
-
Meilleures pratiques pour choisir les fonctions de distance, les touches de partition et les dimensions — voirMeilleures pratiques pour les index vectoriels.
-
Surveillance de la capacité et des métriques de l'indice vectoriel — voirSurveillance de la capacité de l'indice vectoriel.