Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La RRF funzione restituisce un punteggio fuso combinando due o più punteggi forniti da altre funzioni.
Sintassi
RRF(<function1>, <function2>, ..., <weights>)
Arguments
| Description | |
|---|---|
function1 |
Funzione di assegnazione dei punteggi, ad esempio VectorDistance o FullTextScore. |
function2 |
Funzione di assegnazione dei punteggi, ad esempio VectorDistance o FullTextScore. |
weights |
Matrice di numeri che definiscono un peso di importanza per ogni funzione di assegnazione dei punteggi. |
Tipi restituiti
Restituisce un valore numerico che rappresenta il punteggio fuso.
Esempi
Questa sezione contiene esempi di come usare questo costrutto di linguaggio di query.
Ricerca ibrida (somiglianza vettoriale + BM25)
In questo esempio Ricerca ibrida combina FullTextScore e VectorDistance.
SELECT TOP 10 *
FROM c
ORDER BY RANK RRF(FullTextScore(c.text, "keyword"), VectorDistance(c.vector, [1,2,3]))
[
{
"id": "doc-042",
"text": "The keyword appears frequently in this document about distributed systems.",
"vector": [0.12, 0.87, 0.34]
},
{
"id": "doc-119",
"text": "Another relevant document mentioning the keyword in context.",
"vector": [0.45, 0.22, 0.91]
}
]
Ricerca ibrida ponderata
In questo esempio Ricerca ibrida usa i pesi per le funzioni di assegnazione dei punteggi.
SELECT TOP 10 *
FROM c
ORDER BY RANK RRF(FullTextScore(c.text, "keyword"), VectorDistance(c.vector, [1,2,3]), [2,1])
[
{
"id": "doc-007",
"text": "This document contains the keyword and is semantically close to the query vector.",
"vector": [0.98, 0.11, 0.23]
},
{
"id": "doc-355",
"text": "A document with strong keyword relevance boosted by the higher weight.",
"vector": [0.67, 0.44, 0.18]
}
]
Fusion con due funzioni FullTextScore
In questo esempio vengono fuse due funzioni FullTextScore.
SELECT TOP 10 *
FROM c
ORDER BY RANK RRF(FullTextScore(c.text, "keyword1"), FullTextScore(c.text, "keyword2"))
[
{
"id": "doc-201",
"text": "This article discusses both keyword1 and keyword2 in the context of data engineering."
},
{
"id": "doc-088",
"text": "A comprehensive overview that mentions keyword1 and covers keyword2 in detail."
}
]
Fusion con due funzioni VectorDistance
In questo esempio vengono fuse due funzioni VectorDistance.
SELECT TOP 5 *
FROM c
ORDER BY RANK RRF(VectorDistance(c.vector1, [1,2,3]), VectorDistance(c.vector2, [2,2,4]))
[
{
"id": "doc-014",
"vector1": [0.12, 0.87, 0.34],
"vector2": [0.56, 0.78, 0.90]
},
{
"id": "doc-092",
"vector1": [0.45, 0.22, 0.91],
"vector2": [0.33, 0.67, 0.45]
}
]
Osservazioni:
- Questa funzione richiede la registrazione nella funzionalità Di ricerca full-text di Azure Cosmos DB NoSQL.
- Ricerca ibrida richiede anche la registrazione in Ricerca vettoriale NoSQL di Azure Cosmos DB.
- Questa funzione richiede un indice full-text.
- Questa funzione può essere usata solo in una
ORDER BY RANKclausola e non può essere combinata conORDER BYin altri percorsi di proprietà. - Questa funzione non può far parte di una proiezione( ad esempio,
SELECT FullTextScore(c.text, "keyword") AS Score FROM cnon è valida).