FULLTEXTSCORE - Cosmos DB 中的查询语言

FULLTEXTSCORE 函数返回一个 BM25 评分值,该值只能在 ORDER BY RANK 子句中使用,以按指定术语的相关性从高到低对结果进行排序。

Syntax

FULLTEXTSCORE(<property_path>, <string_expr1>, <string_expr2>, ...)

Arguments

Description
property_path 要搜索的属性路径。
string_expr1 要查找的第一个术语。
string_expr2 要查找的第二个术语。

返回类型

返回一个可与 ORDER BY RANKRRF 一起使用的 BM25 评分。

例子

本部分包含有关如何使用此查询语言构造的示例。

按 RANK 排序的全文评分

在此示例中,函数 FULLTEXTSCORE 用于 ORDER BY RANK 从最高相关性到最低相关性进行排序。

SELECT TOP 10 c.text
FROM c
ORDER BY RANK FULLTEXTSCORE(c.text, "keyword")
-- Example result not available (result not provided in markdown)

结合 WHERE 和 ORDER BY RANK 的全文检索评分

在此示例中,FULLTEXTSCORE 函数用于 ORDER BY RANK 子句中,而 FULLTEXTCONTAINS 用于 WHERE 子句中。

SELECT TOP 10 c.text
FROM c
WHERE FULLTEXTCONTAINS(c.text, "keyword1")
ORDER BY RANK FULLTEXTSCORE(c.text, "keyword1", "keyword2")
-- Example result not available (result not provided in markdown)

注解

  • 此函数需要在 Azure Cosmos DB NoSQL 全文搜索功能中注册。
  • 此函数需要全文索引。
  • 此函数只能在子句中使用 ORDER BY RANK ,或用作系统函数中的 RRF 参数。
  • 此函数不能是投影的一部分(例如, SELECT FullTextScore(c.text, "keyword") AS Score FROM c 无效)。