VectorDistance (запрос NoSQL)
ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL
Возвращает оценку сходства между двумя указанными векторами.
Синтаксис
VectorDistance(<vector_expr1>, <vector_expr2>, [<bool_expr>], [<obj_expr>])
Аргументы
Description | |
---|---|
spatial_expr_1 |
Массив float32 или меньше. |
spatial_expr_2 |
Массив float32 или меньше. |
bool_expr |
Логическое значение, указывающее, как вычисляемое значение используется в выражении ORDER BY. Если true используется метод подбора. Значение использует любой индекс, определенный в свойстве вектора false , если он существует. Значение по умолчанию: false . |
obj_expr |
Форматированный литерал объекта JSON, используемый для указания параметров вычисления векторного расстояния. Допустимые элементы включают distanceFunction и dataType . |
distanceFunction |
Метрика, используемая для вычисления расстояния или сходства. |
dataType |
Тип данных векторов. float32 uint8 , , int8 значения. Значение по умолчанию: float32 . |
Поддерживаемые метрики:distanceFunction
cosine
, который имеет значения от-1
(наименее похожих) к+1
(наиболее похожим).dotproduct
, который имеет значения от-∞
() (-inf
наименее похожие) на+∞
() (+inf
наиболее похожие).euclidean
, который имеет значения из (наиболее похожих) на0
+∞
(+inf
) (наименее похожий).
Типы возвращаемых данных
Возвращает числовое выражение, которое перечисляет оценку сходства между двумя выражениями.
Примеры
В первом примере показан векторный запрос верхнего 10 векторного поиска только с необходимыми аргументами. Одно свойство проецируется вместе с оценкой, возвращаемой VectorDistance
. Затем мы будем использовать ORDER BY
предложение, чтобы сортировать оценки по порядку VectorDistance
от наиболее похожих на наименьший.
SELECT TOP 10 s.name, VectorDistance(c.vector1, <query_vector>)
FROM c
ORDER BY VectorDistance(c.vector1, <query_vector>)
В следующем примере также содержатся необязательные аргументы для 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',})
Замечания
- Для этой функции требуется регистрация в предварительной версии функции поиска векторных векторов Azure Cosmos DB.
- Эта функция получает преимущества от векторного индекса
- Если
false
он указан как необязательныйbool_expr
, используется индекс вектора, определенный в пути, если он существует. Если индекс не определен в пути вектора, эта функция возвращается к полному сканированию и вызывает более высокие затраты на ЕЗ и более высокую задержку, чем при использовании векторного индекса. - Если
VectorDistance
используется вORDER BY
предложении, направление не должно быть указано дляORDER BY
результатов, так как результаты всегда отсортированы по порядку наиболее похожих (сначала) до наименее похожих (последний) на основе используемой метрики сходства. - Результат выражается как оценка сходства.