BIN_FLAT
L'indice BIN_FLAT è una variante dell'indice FLAT, creata esclusivamente per le incorporazioni binarie. Eccelle nelle applicazioni in cui la ricerca della somiglianza vettoriale richiede una precisione perfetta su insiemi di dati relativamente piccoli e di dimensioni milionarie. Utilizzando una metodologia di ricerca esaustiva - confrontando ogni input di destinazione con tutti i vettori del set di dati - BIN_FLAT garantisce risultati esatti. Questa precisione lo rende un benchmark ideale per valutare le prestazioni di altri indici che potrebbero offrire un richiamo inferiore al 100%, sebbene il suo approccio approfondito lo renda anche l'opzione più lenta per i dati su larga scala.
Costruire l'indice
Per costruire un indice BIN_FLAT su un campo vettoriale in Milvus, utilizzare il metodo add_index(), specificando i parametri index_type e metric_type per l'indice.
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
)
In questa configurazione:
index_type: Il tipo di indice da costruire. In questo esempio, impostare il valore suBIN_FLAT.metric_type: Il metodo utilizzato per calcolare la distanza tra i vettori. I valori supportati per le incorporazioni binarie sonoHAMMING(predefinito) eJACCARD. Per i dettagli, fare riferimento a Tipi di metriche.params: Per l'indice BIN_FLAT non sono necessari parametri aggiuntivi.
Una volta configurati i parametri dell'indice, è possibile creare l'indice utilizzando direttamente il metodo create_index() o passando i parametri dell'indice nel metodo create_collection. Per maggiori dettagli, consultare la sezione Creare una raccolta.
Ricerca nell'indice
Una volta creato l'indice e inserite le entità, è possibile eseguire ricerche di similarità sull'indice.
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
)
Per ulteriori informazioni, consultare Vettore binario.
Parametri dell'indice
Per l'indice BIN_FLAT, non sono necessari parametri aggiuntivi né durante la creazione dell'indice né durante il processo di ricerca.