Delen via


VectorDistance (NoSQL-query)

VAN TOEPASSING OP: NoSQL

Retourneert de overeenkomstscore tussen twee opgegeven vectoren.

Notitie

Zie Georuimtelijke en GeoJSON-locatiegegevens voor meer informatie.

Syntaxis

VECTORDISTANCE(<vector_expr1>, <vector_expr2>, [<bool_expr>], [<obj_expr>])  

Argumenten

Beschrijving
spatial_expr_1 Een matrix van float32 of kleiner.
spatial_expr_2 Een matrix van float32 of kleiner.
bool_expr Een 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 op de vectoreigenschap, als deze bestaat. De standaardwaarde is false.
obj_expr Een letterlijke waarde van een JSON-indeling die wordt gebruikt voor het opgeven van opties voor de berekening van vectorafstand. Geldige items zijn onder andere distanceFunction en dataType.
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.

Ondersteunde metrische gegevens voor distanceFunction zijn:

  • cosinus, die waarden heeft van -1 (minst vergelijkbaar) met +1 (meest vergelijkbaar).
  • dotproduct, dat waarden van -inf (minst vergelijkbaar) heeft 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

Met vereiste argumenten

SELECT c.name, VectorDistance(c.vector1, c.vector2) AS SimilarityScore
FROM c
ORDER BY VectorDistance(c.vector1, c.vector2)

Met optionele argumenten

SELECT c.name, VectorDistance(c.vector1, c.vector2, true, {'distanceFunction':'cosine', 'dataType':'float32',}) AS SimilarityScore
FROM c
ORDER BY VectorDistance(c.vector1, c.vector2)

Opmerkingen

  • Voor deze functie is inschrijving vereist in de preview-functie van Azure Cosmos DB NoSQL Vector Search.
  • Deze functie profiteert van een vectorindex
  • als false wordt opgegeven als de optionele bool_expr, dan wordt de vectorindex die op het pad is gedefinieerd, gebruikt, indien aanwezig. Als er geen index is gedefinieerd op het vectorpad, wordt deze teruggezet naar 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.