RRF(NoSQL 查询)

适用范围: NoSQL

此系统函数用于合并其他函数提供的两个或多个分数。

语法

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

参数

说明
function1 评分函数,如 VectorDistance 或 FullTextScore。
function2 评分函数,如 VectorDistance 或 FullTextScore。
weights 定义每个评分函数的重要性权重的数字数组。

示例

这是混合搜索(矢量相似性搜索 + BM25 全文评分)的示例。

SELECT TOP 10 *
FROM c
ORDER BY RANK RRF(FullTextScore(c.text, "keyword"), VectorDistance(c.vector, [1,2,3]))

此示例显示与两个 FullTextScore 函数的融合

SELECT TOP 10 *
FROM c
ORDER BY RANK RRF(FullTextScore(c.text, "keyword1"), FullTextScore(c.text, "keyword2")

此示例显示与两个 VectorDistance 函数的融合

SELECT TOP 5 *
FROM c
ORDER BY RANK RRF(VectorDistance(c.vector1, [1,2,3]),VectorDistance(c.vector2, [2,2,4]))

此示例显示与两个 VectorDistance 函数的融合

注解

  • 此函数需要全文检索
  • 此函数只能在子 ORDER BY RANK 句中使用,不能与其他 ORDER BY 属性路径结合使用。
  • 此函数不能是投影的一部分(例如,SELECT FullTextScore(c.text, "keyword") AS Score FROM c 无效。