VectorDistance (zapytanie NoSQL)

DOTYCZY: NoSQL

Zwraca wynik podobieństwa między dwoma określonymi wektorami.

Uwaga

Aby uzyskać więcej informacji, zobacz Geospatial and GeoJSON location data (Dane lokalizacji geoprzestrzennych i geoJSON).

Składnia

VectorDistance(<vector_expr1>, <vector_expr2>, [<bool_expr>], [<obj_expr>])  

Argumenty

opis
spatial_expr_1 Tablica lub float32 mniejsza.
spatial_expr_2 Tablica lub float32 mniejsza.
bool_expr Wartość logiczna określająca sposób użycia obliczonej wartości w wyrażeniu ORDER BY. Jeśli truejest używana wartość , zostanie użyta siła siłowa. Wartość używa dowolnego indeksu false zdefiniowanego we właściwości wektora, jeśli istnieje. Wartość domyślna to false.
obj_expr Literał obiektu sformatowanego w formacie JSON służący do określania opcji obliczania odległości wektorowej. Prawidłowe elementy to i distanceFunction dataType.
distanceFunction Metryka używana do obliczania odległości/podobieństwa.
dataType Typ danych wektorów. float32, , int8uint8 wartości. Wartość domyślna to float32.

Obsługiwane metryki dla distanceFunction programu to:

  • cosine, który ma wartości z -1 (najmniej podobne) do +1 (najbardziej podobne).
  • dotproduct, który ma wartości z -∞ (-inf) (najmniej podobne) do +∞ () (+infnajbardziej podobne).
  • euclidean, który ma wartości z 0 (najbardziej podobne) do +∞ () (+infnajmniej podobne).

Typy zwracane

Zwraca wyrażenie liczbowe, które wylicza wynik podobieństwa między dwoma wyrażeniami.

Przykłady

Ten pierwszy przykład zawiera tylko wymagane argumenty.

SELECT VALUE {
  name: s.name, 
  similarityScore: VectorDistance(s.vector1, s.vector2)
}
FROM 
  source s
ORDER BY 
  VectorDistance(s.vector1, s.vector2)

W następnym przykładzie przedstawiono również opcjonalne argumenty.

SELECT VALUE {
  name: s.name, 
  similarityScore: VectorDistance(s.vector1, s.vector2, true, {'distanceFunction':'cosine', 'dataType':'float32',})
}
FROM 
  source s
ORDER BY 
  VectorDistance(s.vector1, s.vector2)

Uwagi

  • Ta funkcja wymaga rejestracji w funkcji wyszukiwania wektorowego NoSQL w usłudze Azure Cosmos DB.
  • Ta funkcja korzysta z indeksu wektorowego
  • Jeśli false parametr jest podany jako opcjonalny bool_expr, jest używany indeks wektorowy zdefiniowany na ścieżce, jeśli istnieje. Jeśli na ścieżce wektorowej nie zdefiniowano żadnego indeksu, ta funkcja przywraca pełne skanowanie i generuje wyższe opłaty za jednostkę RU i większe opóźnienie niż w przypadku użycia indeksu wektorowego.
  • Gdy VectorDistance jest używany w klauzuli ORDER BY , nie trzeba określać kierunku dla parametru ORDER BY , ponieważ wyniki są zawsze sortowane w kolejności od najbardziej podobnych (pierwszy) do najmniej podobnych (ostatni) na podstawie użytej metryki podobieństwa.
  • Wynik jest wyrażony jako wynik podobieństwa.