This topic describes how to build an index for vectors in Milvus.
Vector indexes are an organizational unit of metadata used to accelerate vector similarity search. Without index built on vectors, Milvus will perform a brute-force search by default.
See Vector Index for more information about mechanism and varieties of vector indexes.
Current release of Milvus only supports index on vector field. Future releases will support index on scalar field.
By default, Milvus does not index a segment with less than 1,024 rows. To change this parameter, configure rootCoord.minSegmentSizeToEnableIndex in milvus.yaml.
The following example builds a 1024-cluster IVF_FLAT index with Euclidean distance (L2) as the similarity metrics. You can choose the index and metrics that suit your scenario. See Similarity Metrics for more information.
create index
Collection name(book): book
The name of the field to create an index for(book_intro): book_intro
Index type(FLAT, IVF_FLAT, IVF_SQ8, IVF_PQ, RNSG, HNSW, ANNOY): IVF_FLAT
Index metric type(L2, IP, HAMMING, TANIMOTO): L2
Index params nlist: 1024
Timeout []:
Parameter
Description
Options
metric_type
Type of metrics used to measure similarity of vectors.
For floating point vectors:
L2 (Euclidean distance)
IP (Inner product)
For binary vectors:
JACCARD (Jaccard distance)
TANIMOTO (Tanimoto distance)
HAMMING (Hamming distance)
SUPERSTRUCTURE (Superstructure)
SUBSTRUCTURE (Substructure)
index_type
Type of index used to accelerate the vector search.