VectorDistance (zapytanie NoSQL)
DOTYCZY: NoSQL
Zwraca wynik podobieństwa między dwoma określonymi wektorami.
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
W tym pierwszym przykładzie przedstawiono 10-wektorowe zapytanie wyszukiwania z tylko wymaganymi argumentami. Przewidywana jest jedna właściwość wraz z wynikiem zwróconym przez VectorDistance
wartość . Następnie użytkownik jest klauzulą ORDER BY
do sortowania VectorDistance
wyników w kolejności od najbardziej podobnej do najmniejszej.
SELECT TOP 10 s.name, VectorDistance(c.vector1, <query_vector>)
FROM c
ORDER BY VectorDistance(c.vector1, <query_vector>)
W następnym przykładzie uwzględniono również opcjonalne argumenty dla VectorDistance
SELECT TOP 10 s.name, VectorDistance(c.vector1, <query_vector>, true, {'distanceFunction':'cosine', 'dataType':'float32',})
FROM c
ORDER BY VectorDistance(c.vector1, <query_vector>, true, {'distanceFunction':'cosine', 'dataType':'float32',})
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.