次の方法で共有


RRF (NoSQL クエリ)

適用対象: NoSQL

このシステム関数は、他の関数によって提供される 2 つ以上のスコアを結合するために使用されます。

構文

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

引数

説明
function1 VectorDistance や FullTextScore などのスコアリング関数。
function2 VectorDistance や FullTextScore などのスコアリング関数。

これは、ハイブリッド検索 (ベクター類似性検索 + 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]))

解説

  • この関数を使用するには、 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 は無効です)。