FULLTEXTSCORE 函数返回一个 BM25 评分值,该值只能在 ORDER BY RANK 子句中使用,以按指定术语的相关性从高到低对结果进行排序。
Syntax
FULLTEXTSCORE(<property_path>, <string_expr1>, <string_expr2>, ...)
Arguments
| Description | |
|---|---|
property_path |
要搜索的属性路径。 |
string_expr1 |
要查找的第一个术语。 |
string_expr2 |
要查找的第二个术语。 |
返回类型
返回一个可与 ORDER BY RANK 或 RRF 一起使用的 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无效)。