How to get the similarity score by documentDB

0

I tried vector search on DocumentDB based on the reference below. https://docs.aws.amazon.com/documentdb/latest/developerguide/vector-search.html

I was able to get the document, but I can't get the score. I couldn't find any description of how to get the score in the reference either. Could you tell me how to get the similarity score?

db.collection.aggregate([
  {
    $search: {
      "vectorSearch": {
        "vector": [0.2, 0.5, 0.8], 
        "path": "vectorEmbedding", 
        "similarity": "euclidean",
        "k": 2,
        "probes": 1
      }
    }
  }
]);

{ "_id" : ObjectId("653d835ff96bee02cad7323c"), "product_name" : "Product A", "vectorEmbedding" : [ 0.2, 0.5, 0.8 ] }
gefragt vor 2 Monaten241 Aufrufe
1 Antwort
1

DocumentDB's output for vector searches does not include similarity scores, unlike MongoDB. To obtain these scores, you can calculate them manually using a function like the following:

import math

def euclidean_distance(vec1, vec2):
    return math.sqrt(sum((a - b) ** 2 for a, b in zip(vec1, vec2)))

This function calculates the Euclidean distance between two vectors, which can be used as a measure of similarity. For example:

query_vector = [0.2, 0.5, 0.8]
document_vector = [0.2, 0.5, 0.8]  # Example vector from a returned document

score = euclidean_distance(query_vector, document_vector)

In this case, the score value represents the similarity between the query vector and a document's vector. Smaller score indicate higher similarity.

Resources:

profile picture
EXPERTE
beantwortet vor 2 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen