MetricType

Enumerates the distance metric types used for vector similarity search.

type MetricType string

VALUES:

  • L2 = “L2”

    Euclidean (L2) distance. Smaller values indicate greater similarity.

  • IP = “IP”

    Inner product distance. Larger values indicate greater similarity.

  • COSINE = “COSINE”

    Cosine similarity. Values range from -1 to 1, with 1 being most similar.

  • HAMMING = “HAMMING”

    Hamming distance for binary vectors.

  • JACCARD = “JACCARD”

    Jaccard distance for binary vectors.

  • TANIMOTO = “TANIMOTO”

    Tanimoto distance for binary vectors.

  • SUBSTRUCTURE = “SUBSTRUCTURE”

    Substructure distance for binary vectors.

  • SUPERSTRUCTURE = “SUPERSTRUCTURE”

    Superstructure distance for binary vectors.

  • BM25 = “BM25”

    BM25 relevance scoring for full-text search.

  • MHJACCARD = “MHJACCARD”

    MHJACCARD.

  • MaxSim = “MAX_SIM”

    MaxSim.

  • MaxSimCosine = “MAX_SIM_COSINE”

    MaxSimCosine.

  • MaxSimL2 = “MAX_SIM_L2”

    MaxSimL2.

  • MaxSimIP = “MAX_SIM_IP”

    MaxSimIP.

  • MaxSimHamming = “MAX_SIM_HAMMING”

    MaxSimHamming.

  • MaxSimJaccard = “MAX_SIM_JACCARD”

    MaxSimJaccard.

Example

import (
    "context"

    "github.com/milvus-io/milvus/client/v2/index"
    "github.com/milvus-io/milvus/client/v2/milvusclient"
)

ctx, cancel := context.WithCancel(context.Background())
defer cancel()

milvusAddr := "127.0.0.1:19530"

cli, err := milvusclient.New(ctx, &milvusclient.ClientConfig{
    Address: milvusAddr,
})
if err != nil {
    // handle error
}

defer cli.Close(ctx)

// Use MetricType when creating an index
// L2 (Euclidean distance) for float vectors
hnswIndex := index.NewHNSWIndex(index.MetricTypeL2, 16, 200)
_, err = cli.CreateIndex(ctx, milvusclient.NewCreateIndexOption(
    "my_collection", "embedding", hnswIndex))
if err != nil {
    // handle error
}

// IP (Inner Product) for normalized vectors
ipIndex := index.NewHNSWIndex(index.MetricTypeIP, 16, 200)
_, err = cli.CreateIndex(ctx, milvusclient.NewCreateIndexOption(
    "my_collection", "normalized_embedding", ipIndex))
if err != nil {
    // handle error
}

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Was this page helpful?