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 true jest 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 , , int8 uint8 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+∞
() (+inf
najbardziej podobne).euclidean
, który ma wartości z0
(najbardziej podobne) do+∞
() (+inf
najmniej 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 opcjonalnybool_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 klauzuliORDER BY
, nie trzeba określać kierunku dla parametruORDER 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.