Dela via


VectorDistance (NoSQL-fråga)

GÄLLER FÖR: NoSQL

Returnerar likhetspoängen mellan två angivna vektorer.

Kommentar

Mer information finns i Geospatiala och GeoJSON-platsdata.

Syntax

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

Argument

beskrivning
spatial_expr_1 En matris med float32 eller mindre.
spatial_expr_2 En matris med float32 eller mindre.
bool_expr Ett booleskt värde som anger hur det beräknade värdet används i ett ORDER BY-uttryck. Om trueanvänds brute force. Ett värde för false utnyttjar alla index som definierats för vektoregenskapen, om det finns. Standardvärdet är false.
obj_expr En JSON-formaterad objektliteral som används för att ange alternativ för vektoravståndsberäkningen. Giltiga objekt inkluderar distanceFunction och dataType.
distanceFunction Måttet som används för att beräkna avstånd/likhet.
dataType Datatypen för vektorerna. float32, int8, uint8 värden. Standardvärdet är float32.

Mått som stöds för distanceFunction är:

  • cosinin, som har värden från -1 (minst lika) till +1 (mest liknande).
  • dotproduct, som har värden från -inf (minst liknande) till +inf (mest liknande).
  • euclidean, som har värden från 0 (mest liknande) till +inf (minst liknande).

Returtyper

Returnerar ett numeriskt uttryck som räknar upp likhetspoängen mellan två uttryck.

Exempel

Med nödvändiga argument

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

Med valfria argument

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

Kommentarer

  • Den här funktionen kräver registrering i förhandsversionen av Azure Cosmos DB NoSQL Vector Search.
  • Den här funktionen drar nytta av ett vektorindex
  • om false anges som valfritt bool_expranvänds det vektorindex som definierats på sökvägen, om det finns något. Om inget index har definierats på vektorsökvägen återgår detta till fullständig genomsökning och medför högre RU-avgifter och högre svarstid än om du använder ett vektorindex.
  • När VectorDistance används i en ORDER BY sats behöver ingen riktning anges för ORDER BY eftersom resultaten alltid sorteras i ordning efter de flesta liknande (först) minst lika (sista) baserat på likhetsmåttet som används.
  • Resultatet uttrycks som en likhetspoäng.