Compartir vía


RRF - Lenguaje de consulta en Cosmos DB (en Azure y Fabric)

La RRF función devuelve una puntuación fusionada combinando dos o más puntuaciones proporcionadas por otras funciones.

Syntax

RRF(<function1>, <function2>, ..., <weights>)

Arguments

Description
function1 Una función de puntuación como VectorDistance o FullTextScore.
function2 Una función de puntuación como VectorDistance o FullTextScore.
weights Matriz de números que definen un peso de importancia para cada función de puntuación.

Tipos de retorno

Devuelve un valor numérico que representa la puntuación fusionada.

Examples

Esta sección contiene ejemplos de cómo usar esta construcción del lenguaje de consulta.

Búsqueda híbrida (similitud vectorial + BM25)

En este ejemplo, Hybrid Search combina FullTextScore y VectorDistance.

SELECT TOP 10 *
FROM c
ORDER BY RANK RRF(FullTextScore(c.text, "keyword"), VectorDistance(c.vector, [1,2,3]))
-- Example result not available (see documentation)

En este ejemplo, La búsqueda híbrida usa pesos para las funciones de puntuación.

SELECT TOP 10 *
FROM c
ORDER BY RANK RRF(FullTextScore(c.text, "keyword"), VectorDistance(c.vector, [1,2,3]), [2,1])
-- Example result not available (see documentation)

Fusión con dos funciones FullTextScore

En este ejemplo, se fusionan dos funciones FullTextScore.

SELECT TOP 10 *
FROM c
ORDER BY RANK RRF(FullTextScore(c.text, "keyword1"), FullTextScore(c.text, "keyword2"))
-- Example result not available (see documentation)

Fusión con dos funciones VectorDistance

En este ejemplo, se fusionan dos funciones VectorDistance.

SELECT TOP 5 *
FROM c
ORDER BY RANK RRF(VectorDistance(c.vector1, [1,2,3]), VectorDistance(c.vector2, [2,2,4]))
-- Example result not available (see documentation)

Observaciones

  • Esta función requiere la inscripción en la característica Búsqueda de texto completo de NoSQL de Azure Cosmos DB.
  • Hybrid Search también requiere la inscripción en Azure Cosmos DB NoSQL Vector Search.
  • Esta función requiere un índice de texto completo.
  • Esta función solo se puede usar en una ORDER BY RANK cláusula y no se puede combinar con ORDER BY en otras rutas de acceso de propiedad.
  • Esta función no puede formar parte de una proyección (por ejemplo, SELECT FullTextScore(c.text, "keyword") AS Score FROM c no es válida).