RRF (NoSQL クエリ)
適用対象: NoSQL
このシステム関数は、他の関数によって提供される 2 つ以上のスコアを結合するために使用されます。
構文
RRF(<function1>, <function2, ...>)
引数
説明 | |
---|---|
property_path |
検索するプロパティ パス。 |
array_expr |
文字列リテラルの空でない配列。 |
例
これは、ハイブリッド検索 (ベクター類似性検索 + BM25 フルテキスト スコアリング) の例です。
SELECT TOP 10 *
FROM c
ORDER BY RANK RRF(FullTextScore(c.text, ["keyword"]), VectorDistance(c.vector, [1,2,3]))
この例では、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,4]))
解説
- この関数を使用するには、 Azure Cosmos DB NoSQL フルテキスト検索プレビュー機能への登録が必要です。
- ハイブリッド検索では、 Azure Cosmos DB NoSQL ベクター検索への登録も必要です。
- この関数には、 Full Text Indexが必要です。
- この関数は、
ORDER BY RANK
句でのみ使用できます。 - この関数をプロジェクションの一部にすることはできません (たとえば、
SELECT FullTextScore(c.text, "keyword") AS Score FROM c
は無効です)。