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, ya que realiza una exploración completa del conjunto de datos para cada consulta. Por consiguiente, no es adecuado para entornos con conjuntos de datos masivos, en los que el rendimiento es un problema. La principal ventaja del índice FLAT es su sencillez y fiabilidad, ya que no requiere entrenamiento 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
anns_field="vector_field", # Vector field 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.