BIN_FLAT
L'indice BIN_FLAT est une variante de l'indice FLAT conçue exclusivement pour les encastrements binaires. Il excelle dans les applications où la recherche de similarité vectorielle exige une précision parfaite sur des ensembles de données relativement petits, à l'échelle du million. En employant une méthodologie de recherche exhaustive - comparant chaque entrée cible à tous les vecteurs de l'ensemble de données -, l'indice FLAT garantit des résultats exacts. Cette précision en fait un point de référence idéal pour évaluer les performances d'autres index susceptibles d'offrir un rappel inférieur à 100 %, bien que son approche exhaustive en fasse également l'option la plus lente pour les données à grande échelle.
Création d'un index
Pour construire un index BIN_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_binary_vector_field_name", # Name of the vector field to be indexed
index_type="BIN_FLAT", # Type of the index to create
index_name="vector_index", # Name of the index to create
metric_type="HAMMING", # Metric type used to measure similarity
params={} # No additional parameters required for BIN_FLAT
)
Dans cette configuration :
index_type: Le type d'index à construire. Dans cet exemple, la valeur estBIN_FLAT.metric_type: La méthode utilisée pour calculer la distance entre les vecteurs. Les valeurs prises en charge pour les encastrements binaires sontHAMMING(valeur par défaut) etJACCARD. 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 BIN_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
anns_field="binary_vector_field", # Binary vector field name
data=[query_binary_vector], # Query binary vector
limit=3, # TopK results to return
search_params={"params": {}} # No additional parameters required for BIN_FLAT
)
Pour plus d'informations, voir Vecteur binaire.
Paramètres de l'index
Pour l'index BIN_FLAT, aucun paramètre supplémentaire n'est nécessaire lors de la création de l'index ou du processus de recherche.