次の方法で共有


RRF (NoSQL クエリ)

適用対象: 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 は無効です)。