精通Neo4j
上QQ阅读APP看书,第一时间看更新

3.5.2 创建索引

3.5.2.1 b树索引

(1)单值索引

为某个标签的所有节点创建带命名的单属性b树索引:

为特定类型的所有关系创建带命名的单属性b树索引:

如果不知道索引是否已经存在,可以使用IF NOT EXISTS子句,如果已经存在模式和类型相同、或者名称相同、或者两者都相同的索引,则索引不会重复创建。

(2)复合索引

为特定标签的所有节点创建带命名的多属性b树索引,即节点复合索引:

节点复合索引仅包含具有指定标签且拥有索引相关所有属性的节点。

例如,为所有具有Person标签且同时具有age和country属性的节点创建复合索引:

为特定关系类型的所有关系创建带命名的多属性b树索引,即关系复合索引:

关系复合索引仅包含具有指定类型且拥有索引相关所有属性的关系。

例如,以下语句将在所有具有PURCHASED标签且同时具有date和amount属性的关系上创建复合索引:

注意:创建索引的操作是在后台执行,所以语句返回后索引并非立即可用。

3.5.2.2 lookup索引

为一个或多个标签的所有节点创建命名的标记查找索引:

为任意关系类型的所有关系创建命名标记查找索引:

OPTIONS子句可以设置索引提供程序,但只有一个有效值token-lookup-1.0,即默认值。lookup索引不支持索引配置。

3.5.2.3 文本索引

文本索引仅支持字符串值,且不支持多个属性。

为特定标签的所有节点创建单属性的文本索引:

为特定关系类型的所有关系创建单属性的文本索引:

如果不知道索引是否已经存在,可以使用IF NOT EXISTS子句。

OPTIONS子句可以设定索引提供程序,但只有一个有效值text-1.0,所以通常无须设置。文本索引不支持其他索引配置。