FLAT
L'index FLAT est l'une des méthodes les plus simples et les plus directes pour indexer et rechercher des vecteurs à virgule flottante. Il repose sur une approche brute, dans laquelle chaque vecteur interrogé est directement comparé à tous les vecteurs de l'ensemble de données, sans prétraitement avancé ni structuration des données. Cette approche garantit la précision, avec un rappel de 100 %, puisque chaque correspondance potentielle est évaluée.
Toutefois, cette méthode de recherche exhaustive présente des inconvénients. L'index FLAT est l'option d'indexation la plus lente par rapport aux autres types d'index dans Milvus, car il effectue un balayage complet de l'ensemble de données pour chaque requête. Par conséquent, il n'est pas bien adapté aux environnements comportant des ensembles de données massifs, où les performances sont un problème. Le principal avantage de l'index FLAT est sa simplicité et sa fiabilité, car il ne nécessite aucune formation ou configuration de paramètres complexes.
Création d'un index
Pour construire un index FLAT
sur un champ de vecteurs dans Milvus, utilisez la méthode add_index()
, en spécifiant les paramètres index_type
et metric_type
pour l'index.
from pymilvus import MilvusClient
# Prepare index building params
index_params = MilvusClient.prepare_index_params()
index_params.add_index(
field_name="your_vector_field_name", # Name of the vector field to be indexed
index_type="FLAT", # Type of the index to create
index_name="vector_index", # Name of the index to create
metric_type="L2", # Metric type used to measure similarity
params={} # No additional parameters required for FLAT
)
Dans cette configuration :
index_type
: Le type d'index à construire. Dans cet exemple, la valeur estFLAT
.metric_type
: La méthode utilisée pour calculer la distance entre les vecteurs. Les valeurs prises en charge sontCOSINE
,L2
etIP
. Pour plus d'informations, reportez-vous à la section Types de métriques.params
: Aucun paramètre supplémentaire n'est nécessaire pour l'index FLAT.
Une fois les paramètres de l'index configurés, vous pouvez créer l'index en utilisant directement la méthode create_index()
ou en transmettant les paramètres de l'index dans la méthode create_collection
. Pour plus d'informations, reportez-vous à la section Créer une collection.
Recherche sur l'index
Une fois l'index construit et les entités insérées, vous pouvez effectuer des recherches de similarité sur l'index.
res = MilvusClient.search(
collection_name="your_collection_name", # Collection name
data=[[0.1, 0.2, 0.3, 0.4, 0.5]], # Query vector
limit=3, # TopK results to return
search_params={"params": {}} # No additional parameters required for FLAT
)
Paramètres de l'index
Pour l'index FLAT, aucun paramètre supplémentaire n'est nécessaire lors de la création de l'index ou du processus de recherche.