Dela via


VectorDistance (NoSQL-fråga)

GÄLLER FÖR: NoSQL

Returnerar likhetspoängen mellan två angivna vektorer.

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 false för använder ett 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:

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

Returtyper

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

Exempel

Det första exemplet innehåller endast de argument som krävs.

SELECT VALUE {
  name: s.name, 
  similarityScore: VectorDistance(s.vector1, s.vector2)
}
FROM 
  source s
ORDER BY 
  VectorDistance(s.vector1, s.vector2)

I nästa exempel finns även valfria argument.

SELECT VALUE {
  name: s.name, 
  similarityScore: VectorDistance(s.vector1, s.vector2, true, {'distanceFunction':'cosine', 'dataType':'float32',})
}
FROM 
  source s
ORDER BY 
  VectorDistance(s.vector1, s.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 den här funktionen 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.