跳转至
开发版采用单机部署,无需产品 License 文件。需要多机部署或大规模性能测试? 了解企业版

全文索引函数

本文介绍 GQL 中与全文索引相关的函数。

在使用以下函数之前,必须先创建全文索引。更多信息,请参见 CREATE FULLTEXT INDEX。

ftscore()

返回存储在索引属性中的STRING值与给定查询字符串之间的 BM25 相关性得分。

得分是一个非负浮点数,取值范围为[0, +∞)。得分越高表示与查询字符串的相关性越高。

NULL 行为:错误

此函数必须与以下子句之一搭配使用:

更多信息,请参见下面的示例部分。

函数签名

ftscore(property_value_expression String, query String) -> DOUBLE
  • property_value_expression:指代一个点类型或边类型的STRING属性的属性表达式。必须已经基于该属性创建好全文索引。
  • query:与属性值进行比较以计算相关性得分的查询字符串。

示例

以下示例假设在 CREATE FULLTEXT INDEX 中介绍的全文索引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 |
+-------------------------------------+--------------------+