FLAT
El índice FLAT es uno de los métodos más sencillos y directos para indexar y buscar vectores de coma flotante. Se basa en un enfoque de fuerza bruta, en el que cada vector de consulta se compara directamente con todos los vectores del conjunto de datos, sin ningún preprocesamiento avanzado ni estructuración de datos. Este método garantiza la precisión y ofrece una recuperación del 100%, ya que se evalúan todas las posibles coincidencias.
Sin embargo, este método de búsqueda exhaustiva tiene sus inconvenientes. El índice FLAT es la opción de indexación más lenta en comparación con otros tipos de índice en Milvus, ya que realiza una exploración completa del conjunto de datos para cada consulta. En consecuencia, no es adecuado para entornos con conjuntos de datos masivos, donde el rendimiento es una preocupación. La principal ventaja del índice FLAT es su simplicidad y fiabilidad, ya que no requiere formación ni complejas configuraciones de parámetros.
Construir el índice
Para construir un índice 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_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
)
En esta configuración
index_type
: El tipo de índice a construir. En este ejemplo, establezca el valorFLAT
.metric_type
: El método utilizado para calcular la distancia entre vectores. Los valores soportados incluyenCOSINE
,L2
, yIP
. Para más detalles, consulte Tipos de métricas.params
: No se necesitan parámetros adicionales para el índice 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 de similitud en el índice.
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
)
Parámetros del índice
Para el índice FLAT, no se necesitan parámetros adicionales ni durante la creación del índice ni durante el proceso de búsqueda.