VectorDistance (NoSQL-query)
VAN TOEPASSING OP: NoSQL
Retourneert de overeenkomstscore tussen twee opgegeven vectoren.
Syntaxis
VectorDistance(<vector_expr_1>, <vector_expr_2>, <bool_expr>, <obj_expr>)
Argumenten
Parameter | Description |
---|---|
vector_expr_1 |
Een matrix van float32 of kleiner. |
vector_expr_2 |
Een matrix van float32 of kleiner. |
bool_expr |
Een optionele Booleaanse waarde die aangeeft hoe de berekende waarde wordt gebruikt in een ORDER BY-expressie. Als true , dan wordt brute kracht gebruikt. Een waarde van het gebruik van false een index die is gedefinieerd voor de vectoreigenschap, als deze bestaat. De standaardwaarde is false . |
obj_expr |
Een optionele letterlijke JSON-indeling voor objecten die worden gebruikt voor het opgeven van opties voor de berekening van de vectorafstand. Geldige items zijn onder andere distanceFunction en dataType , en searchListSizeMultiplier . |
Ondersteunde parameters voor de optionele obj_expr
Parameter | Description |
---|---|
distanceFunction |
De metrische waarde die wordt gebruikt voor het berekenen van afstand/overeenkomsten. |
dataType |
Het gegevenstype van de vectoren. float32 uint8 , waardenint8 . De standaardwaarde is float32 . |
searchListSizeMultiplier |
Een geheel getal dat de grootte van de zoeklijst aangeeft bij het uitvoeren van een vectorzoekopdracht. Als u dit verhoogt, kan de nauwkeurigheid worden verbeterd ten koste van de ru-kosten en -latentie. Min=1, Standaard=5, Max=100. |
Ondersteunde metrische gegevens voor distanceFunction
zijn:
cosine
, die waarden heeft van-1
(minst vergelijkbaar) met+1
(meest vergelijkbaar).dotproduct
, die waarden heeft van-∞
(-inf
) (minst vergelijkbaar) met+∞
(+inf
) (meest vergelijkbaar).euclidean
, die waarden heeft van0
(meest vergelijkbaar) met+∞
(+inf
) (minst vergelijkbaar).
Retourtypen
Retourneert een numerieke expressie die de overeenkomstscore tussen twee expressies opsommen.
Voorbeelden
In dit eerste voorbeeld ziet u een top 10 vectorzoekquery met alleen de vereiste argumenten. Eén eigenschap wordt geprojecteerd, samen met de score die wordt geretourneerd door VectorDistance
. Vervolgens gebruiken we een ORDER BY
component om scores te sorteren VectorDistance
op volgorde van het minste.
SELECT TOP 10 s.name, VectorDistance(c.vector1, <query_vector>)
FROM c
ORDER BY VectorDistance(c.vector1, <query_vector>)
Dit volgende voorbeeld bevat ook optionele argumenten voor 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'})
Belangrijk
Gebruik altijd een TOP N
component in de SELECT
instructie van een query. Anders probeert de vectorzoekopdracht veel meer resultaten te retourneren en kost de query meer RU's en heeft de query een hogere latentie dan nodig is.
Opmerkingen
- Voor deze functie is het inschakelen van de Azure Cosmos DB NoSQL Vector Search-functie vereist.
- Deze functie profiteert van een vectorindex
- Als
false
het optioneelbool_expr
is, wordt de vectorindex die op het pad is gedefinieerd, gebruikt, als er een bestaat. Als er geen index is gedefinieerd op het vectorpad, wordt deze functie teruggezet naar de volledige scan en worden hogere RU-kosten en hogere latentie in rekening gebracht dan wanneer een vectorindex wordt gebruikt. - Wanneer
VectorDistance
wordt gebruikt in eenORDER BY
component, hoeft er geen richting te worden opgegeven,ORDER BY
omdat de resultaten altijd worden gesorteerd in de volgorde van de meeste vergelijkbare (eerste) op het minst vergelijkbare (laatste) op basis van de metrische overeenkomsten die worden gebruikt. - Het resultaat wordt uitgedrukt als een overeenkomstscore.