Calculate Distance Between Vectors
This topic describes how to calculate distance between vectors with Milvus.
Milvus searches most similar vectors based on the distance calculation of vectors. Vice versa, you can use Milvus to calculate the distance between vectors using distance metrics that suit specific scenario. See Similarity Metrics for more information.
The following example simulates the scenarios when you want to calculate the distance between vectors in the collection and some other vectors.
Prepare vectors
Prepare the vectors used for calculation.
vectors_left = {
"ids": [0, 1],
"collection": "book",
"partition": "_default",
"field": "book_intro"
}
import random
external_vectors = [[random.random() for _ in range(2)] for _ in range(4)]
vectors_right = {"float_vectors": external_vectors}
// Node User Guide will be ready soon.
// GO User Guide will be ready soon.
// Java User Guide will be ready soon.
// CLI User Guide will be ready soon.
Parameter | Description |
---|---|
vectors_left and vectors_right |
Vectors on the left and right side of the operator. Dict type that can be represented as {"ids": [primary_key_1, primary_key_2, ... primary_key_n], "collection": "collection_name", "partition": "partition_name", "field": "vector_field_name"} , {"float_vectors": [[1.0, 2.0], [3.0, 4.0], ... [9.0, 10.0]]} , or {"bin_vectors": [b'”', b'N', ... b'Ê']} . |
ids |
List of primary key of entities that in the collection. |
collection |
Name of the collection that holds the entities. |
partition |
Name of the partition that holds the entities. |
field |
Name of the vector field in the collection. |
float_vectors or bin_vectors |
Type of the vectors. |
Prepare calculation parameters
Specify the parameters used for the calculation.
params = {
"metric": "IP",
"dim": 2
}
// Node User Guide will be ready soon.
// GO User Guide will be ready soon.
// Java User Guide will be ready soon.
// CLI User Guide will be ready soon.
Parameter | Description | Option |
---|---|---|
params |
Calculation parameters. | N/A |
metric |
Metric types used for calculation. | For floating point vectors:
|
dim |
Dimension of the vector. | N/A |
(Optional) Load collection
If you calculate with the vectors in a collection in Milvus, you must load the collection to memory first.
from pymilvus import Collection
collection = Collection("book") # Get an existing collection.
collection.load()
await milvusClient.collectionManager.loadCollection({
collection_name: "book",
});
err := milvusClient.LoadCollection(
context.Background(), // ctx
"book", // CollectionName
false // async
)
if err != nil {
log.Fatal("failed to load collection:", err.Error())
}
milvusClient.loadCollection(
LoadCollectionParam.newBuilder()
.withCollectionName("book")
.build()
);
load -c book
Calculate vector distance
Calculate the distance between vectors based on the vectors and parameters provided.
from pymilvus import utility
results = utility.calc_distance(
vectors_left=vectors_left,
vectors_right=vectors_right,
params=params
)
print(results)
// Node User Guide will be ready soon.
// GO User Guide will be ready soon.
// Java User Guide will be ready soon.
// CLI User Guide will be ready soon.
What’s next
- Learn more basic operations of Milvus: