BIN_FLAT
El índice BIN_FLAT es una variante del índice FLAT diseñada exclusivamente para incrustaciones binarias. Destaca en aplicaciones en las que la búsqueda de similitudes vectoriales exige una precisión perfecta en conjuntos de datos relativamente pequeños y a escala de millones. Al emplear una metodología de búsqueda exhaustiva (comparando cada entrada objetivo con todos los vectores del conjunto de datos), Bin_flat garantiza resultados exactos. Esta precisión lo convierte en un punto de referencia ideal para evaluar el rendimiento de otros índices que podrían ofrecer menos del 100% de recuperación, aunque su enfoque exhaustivo también lo convierte en la opción más lenta para datos a gran escala.
Crear un índice
Para construir un índice BIN_FLAT sobre un campo vectorial en Milvus, utilice el método add_index(), especificando los parámetros index_type y metric_type para el índice.
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
)
En esta configuración:
index_type: El tipo de índice a construir. En este ejemplo, establezca el valorBIN_FLAT.metric_type: El método utilizado para calcular la distancia entre vectores. Los valores soportados para incrustaciones binarias incluyenHAMMING(por defecto) yJACCARD. Para más detalles, consulte Tipos de métricas.params: No se necesitan parámetros adicionales para el índice BIN_FLAT.
Una vez configurados los parámetros del índice, puede crear el índice utilizando directamente el método create_index() o pasando los parámetros del índice en el método create_collection. Para más detalles, consulte Crear colección.
Búsqueda en el índice
Una vez creado el índice e insertadas las entidades, puede realizar búsquedas por similitud en el índice.
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
)
Para obtener más información, consulte Vector binario.
Parámetros del índice
Para el índice BIN_FLAT, no se necesitan parámetros adicionales ni durante la creación del índice ni durante el proceso de búsqueda.