apoc.schema.relationships过程
|
语法 |
|
||
描述 |
返回数据库中所有关系类型的索引和约束信息。可以通过配置参数定义需要包含或排除的一组关系类型。 |
||
输入参数 |
名称 |
类型 |
描述 |
|
|
|
|
返回参数 |
名称 |
类型 |
描述 |
|
|
索引或约束生成的名称。 |
|
|
|
索引或约束的类型。 |
|
|
|
与约束或索引关联的属性键。 |
|
|
|
约束或索引的状态。 |
|
|
|
与约束或索引关联的关系类型。 |
|
配置参数
| 名称 | 类型 | 默认 | 描述 |
|---|---|---|---|
|
|
[] |
需要包含的关系类型。默认为包含所有关系类型。 |
|
|
[] |
需要排除的关系类型。默认为包含所有关系类型。 |
无法同时设置 relationships 和 excludeRelationships。如果同时设置,将返回错误:Parameters relationships and excludeRelationships are both valued.(参数 relationships 和 excludeRelationships 不能同时赋值)。
使用示例
type 结果可以是以下值之一:
| 名称 (name) | 模式类型 |
|---|---|
"RELATIONSHIP_PROPERTY_EXISTENCE" |
关系属性存在约束 |
"FULLTEXT" |
全文索引 |
"TEXT" |
文本索引 |
"RANGE" |
范围索引 (Range index) |
"POINT" |
空间点索引 (Point index) |
"LOOKUP" |
查找索引 (Lookup index) |
假设存在以下架构
CREATE FULLTEXT INDEX fullIdx FOR ()-[n:MOVIE|BOOK]-() ON EACH [n.title, n.description];
CREATE POINT INDEX pointIdx FOR ()-[n:PLACE]-() ON (n.address);
CREATE TEXT INDEX textIdx FOR ()-[n:GAME]-() ON (n.title);
CREATE RANGE INDEX rangeIdx FOR ()-[n:FOO_BAR]-() ON (n.name);
可以执行以下查询
CALL apoc.schema.relationships()
| 名称 (name) | type | 属性 | 状态 (status) | 关系类型 (relationshipType) |
|---|---|---|---|---|
":PLACE(address)" |
"POINT" |
["address"] |
"ONLINE" |
"PLACE" |
":GAME(title)" |
"TEXT" |
["title"] |
"ONLINE" |
"GAME" |
":[BOOK, MOVIE],(title,description)" |
"FULLTEXT" |
["title", "description"] |
"ONLINE" |
["BOOK", "MOVIE"] |
":FOO_BAR(name)" |
"RANGE" |
["name"] |
"ONLINE" |
"FOO_BAR" |
假设存在以下架构
CREATE CONSTRAINT likesDay
FOR ()-[like:LIKED]-()
REQUIRE (like.day) IS NOT NULL;
可以执行以下查询
CALL apoc.schema.relationships()
| 名称 (name) | type | 属性 | 状态 (status) | 关系类型 (relationshipType) |
|---|---|---|---|---|
"CONSTRAINT ON ()-[liked:LIKED]-() ASSERT liked.day IS NOT NULL" |
"RELATIONSHIP_PROPERTY_EXISTENCE" |
["day"] |
"" |
["BOOK", "MOVIE"] |