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

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 IF NOT EXISTS index_name ON NODE VERTEX TYPE node_type_name EDGE RELATIONSHIP TYPE edge_type_name ( property_name )

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)