適用対象: NoSQL
このシステム関数は、他の関数によって提供される 2 つ以上のスコアを結合するために使用されます。
構文
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 が VectorDsitance の 2 倍の重み付けされるハイブリッド検索を示します。
SELECT TOP 10 *
FROM c
ORDER BY RANK RRF(FullTextScore(c.text, "keyword"), VectorDistance(c.vector, [1,2,3]), [2,1])
この例では、2 つの FullTextScore
関数との融合を示します
SELECT TOP 10 *
FROM c
ORDER BY RANK RRF(FullTextScore(c.text, "keyword1"), FullTextScore(c.text, "keyword2")
この例では、2 つの VectorDistance
関数との融合を示します
SELECT TOP 5 *
FROM c
ORDER BY RANK RRF(VectorDistance(c.vector1, [1,2,3]),VectorDistance(c.vector2, [2,2,4]))
この例では、2 つの VectorDistance
関数との融合を示します
解説
- この関数には、 Azure Cosmos DB NoSQL フルテキスト検索機能への登録が必要です。
- ハイブリッド検索では、 Azure Cosmos DB NoSQL ベクター検索への登録も必要です。
- この関数には、 Full Text Indexが必要です。
- この関数は、
ORDER BY RANK
句でのみ使用でき、他のプロパティ パスのORDER BY
と組み合わせることはできません。 - この関数をプロジェクションの一部にすることはできません (たとえば、
SELECT FullTextScore(c.text, "keyword") AS Score FROM c
は無効です)。