FLAT
Der FLAT-Index ist eine der einfachsten und unkompliziertesten Methoden zur Indizierung und Suche von Fließkomma-Vektoren. Er basiert auf einem Brute-Force-Ansatz, bei dem jeder Abfragevektor direkt mit jedem Vektor des Datensatzes verglichen wird, ohne dass eine erweiterte Vorverarbeitung oder Datenstrukturierung erforderlich ist. Dieser Ansatz garantiert Genauigkeit und bietet eine 100-prozentige Trefferquote, da jede potenzielle Übereinstimmung bewertet wird.
Diese erschöpfende Suchmethode ist jedoch mit Kompromissen verbunden. Der FLAT-Index ist im Vergleich zu anderen Indextypen in Milvus die langsamste Indizierungsoption, da er bei jeder Abfrage einen vollständigen Scan des Datensatzes durchführt. Daher eignet er sich nicht für Umgebungen mit großen Datenmengen, bei denen die Leistung eine Rolle spielt. Der Hauptvorteil des FLAT-Index ist seine Einfachheit und Zuverlässigkeit, da er kein Training oder komplexe Parameterkonfigurationen erfordert.
Index erstellen
Um einen FLAT
-Index für ein Vektorfeld in Milvus zu erstellen, verwenden Sie die Methode add_index()
und geben die Parameter index_type
und metric_type
für den Index an.
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
)
In dieser Konfiguration:
index_type
: Der Typ des zu erstellenden Index. In diesem Beispiel setzen Sie den Wert aufFLAT
.metric_type
: Die Methode zur Berechnung des Abstands zwischen Vektoren. Unterstützte Werte sindCOSINE
,L2
undIP
. Einzelheiten finden Sie unter Metrische Typen.params
: Für den FLAT-Index sind keine zusätzlichen Parameter erforderlich.
Sobald die Index-Parameter konfiguriert sind, können Sie den Index erstellen, indem Sie die Methode create_index()
direkt verwenden oder die Index-Parameter in der Methode create_collection
übergeben. Details finden Sie unter Create Collection.
Suche im Index
Sobald der Index erstellt und die Entitäten eingefügt sind, können Sie Ähnlichkeitssuchen im Index durchführen.
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
)
Index-Parameter
Für den FLAT-Index werden keine zusätzlichen Parameter benötigt, weder bei der Indexerstellung noch bei der Suche.