全文索引函数¶
本文介绍 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 |
+-------------------------------------+--------------------+