Source: https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/functions/fulltext/ Documentation version: v5.3.2 # 全文索引函数 本文介绍 GQL 中与全文索引相关的函数。 在使用以下函数之前,必须先创建全文索引。更多信息,请参见 [CREATE FULLTEXT INDEX](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/ddl/index/create-fulltext/)。 ## ftscore() 返回存储在索引属性中的`STRING`值与给定查询字符串之间的 [BM25](https://en.wikipedia.org/wiki/Okapi_BM25) 相关性得分。 得分是一个非负浮点数,取值范围为`[0, +∞)`。得分越高表示与查询字符串的相关性越高。 NULL 行为:错误 此函数必须与以下子句之一搭配使用: - 用于按得分过滤结果的 [WHERE 子句](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/dql/clauses/where/)(例如`score > 0`)。 - 用于限制返回结果数量的 [LIMIT 子句](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/dql/clauses/limit/)。 更多信息,请参见下面的示例部分。 ### 函数签名 ```` ftscore(property_value_expression String, query String) -> DOUBLE ```` - `property_value_expression`:指代一个点类型或边类型的`STRING`属性的[属性表达式](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/expressions/property/)。必须已经基于该属性创建好全文索引。 - `query`:与属性值进行比较以计算相关性得分的查询字符串。 ### 示例 以下示例假设在 [CREATE FULLTEXT INDEX](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/ddl/index/create-fulltext/) 中介绍的全文索引`ft_movie`已创建。 #### 按相关性得分过滤 ```` ''' USE movie MATCH (v@Movie) LET score= ftscore(v.name, 'Uncle') FILTER WHERE score > 0 RETURN v.name AS movie_name, score ''' ```` 返回: ```` +------------+--------------------+ | movie_name | score | +------------+--------------------+ | My Uncle | 3.1877928754939955 | +------------+--------------------+ ```` #### 限制返回结果数量 ```` ''' USE movie MATCH (v@Movie) LET score= ftscore(v.name, 'Star') RETURN v.name AS movie_name, score ORDER BY score ASC LIMIT 3 ''' ```` 返回: ```` +-------------------------------------+--------------------+ | movie_name | score | +-------------------------------------+--------------------+ | Star Trek III: The Search for Spock | 1.1281776534864079 | | Star Trek: The Motion Picture | 1.2483069947936236 | | Star Trek: Generations | 1.4253784613321967 | +-------------------------------------+--------------------+ ````