Delen via


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. float32uint8, 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 van 0 (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 optioneel bool_expris, 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 een ORDER 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.