CREATE FULLTEXT INDEX¶
CREATE FULLTEXT INDEX语句用于为特定图创建全文索引。
可选择以下任意方法来指定图:
- 在本语句前添加 USE 子句来设定工作图。
- 提前使用 SESSION SET 设置当前会话的图。
若两种方法均使用,则以 USE 子句中的指定为准。若均未使用,则报错。
您可以基于单个点类型或边类型的单个STRING类型的属性创建全文索引,从而高效地搜索索引属性中的特定单词或短语。
全文索引创建后,可搭配 ftscore() 函数计算索引属性存储的STRING值与给定查询字符串之间的相关性得分。
若要创建其他类型的索引,请参见 CREATE NORMAL INDEX、CREATE VECTOR INDEX 和 CREATE SPATIAL INDEX。
Note
对非默认 Schema 或其中的对象执行操作时,用户既要通过隐式访问规则或显式USAGE授权获得该 Schema 的访问权,也要具备目标操作所需的权限。Schema 访问校验和目标操作所需的权限校验相互独立,满足其中一项不能替代另一项。Schema 访问控制不适用于临时图、内置 Procedure 和内置 Function。更多信息,请参见 Schema 访问控制。
前提条件¶
- 图已创建。更多信息,请参见 CREATE GRAPH。
- 若要创建全文索引,必须是图的所有者,或具备在图上执行
INDEX操作的权限,或具备在当前 Schema 执行CREATE INDEX操作的权限。更多信息,请参见角色与权限。
语法¶
- create_fulltext_index_statement
create_fulltext_index_statement ::=
'CREATE' 'FULLTEXT' 'INDEX' ('IF NOT EXISTS')? index_name 'ON' ( ( ('NODE' | 'VERTEX') 'TYPE'? node_type_name) | ( ('EDGE'|'RELATIONSHIP') 'TYPE'? edge_type_name) ) '(' property_name ')'
参数¶
IF NOT EXISTS¶
该子句会检查是否已存在同名的索引。若已存在,则不会创建索引,也不会抛出异常。
若未指定该子句,且已存在同名的索引,则会抛出异常。
index_name¶
待创建的全文索引的名称。该名称为常规标识符,在同一个图的所有类型的索引中,索引名称必须唯一。
有关标识符的详细信息,请参见标识符命名规则。
node_type_name¶
待创建全文索引的点类型的名称。该点类型必须至少有一个值类型为STRING的属性。
edge_type_name¶
待创建全文索引的边类型的名称。该边类型必须至少有一个值类型为STRING的属性。
property_name¶
待创建全文索引的点类型或边类型的属性名称。属性的值类型必须为STRING。更多信息,请参见字符串。
注意,每个全文索引只能指定一个属性。
示例¶
以下示例基于示例数据集。
在点类型上创建全文索引¶
USE movie CREATE FULLTEXT INDEX IF NOT EXISTS ft_movie ON NODE Movie(name)