删除图的部分
删除图的部分有助于释放内存或移除之前修改过的算法结果。
语法
图上不同删除操作的语法描述
CALL gds.graph.nodeProperties.drop(
graphName: String,
nodeProperties: String or List of Strings,
configuration: Map
)
YIELD
propertiesRemoved: Integer,
graphName: String,
nodeProperties: String or List of String
名称 | 类型 | 可选 | 描述 |
---|---|---|---|
graphName |
字符串 |
否 |
图在目录中存储的名称。 |
nodeProperties |
字符串或字符串列表 |
否 |
要删除的图中节点属性。 |
configuration |
Map |
是 |
其他配置参数。 |
名称 | 类型 | 默认值 | 可选 | 描述 |
---|---|---|---|---|
整数 |
4 [1] |
是 |
运行算法所用的并发线程数。 |
|
failIfMissing |
布尔值 |
true |
是 |
如果为 false,则该过程将忽略图中不存在的属性。 |
名称 | 类型 | 描述 |
---|---|---|
propertiesRemoved |
整数 |
已删除的属性数量。 |
graphName |
字符串 |
存储在目录中的图的名称。 |
nodeProperties |
字符串或字符串列表 |
已删除的节点属性。 |
CALL gds.graph.relationships.drop(
graphName: String,
relationshipType: String
)
YIELD
graphName: String,
relationshipType: String,
deletedRelationships: Integer,
deletedProperties: Map
名称 | 类型 | 可选 | 描述 |
---|---|---|---|
graphName |
字符串 |
否 |
图在目录中存储的名称。 |
relationshipType |
字符串 |
否 |
图中要删除的关系类型。 |
名称 | 类型 | 描述 |
---|---|---|
graphName |
字符串 |
存储在目录中的图的名称。 |
relationshipType |
字符串 |
已删除的关系类型。 |
deletedRelationships |
整数 |
从内存图删除的关系数量。 |
deletedProperties |
整数 |
Map,其中键是关系属性的名称,值是该名称下已删除属性的数量。 |
示例
以下所有示例均应在空数据库中运行。 这些示例通常使用 Cypher 投影。原生投影将在未来版本中弃用。 |
为了演示 GDS 对节点属性的功能,我们将在 Neo4j 中创建一个小型社交网络图,并将其投影到我们的图目录中。
以下 Cypher 语句将在 Neo4j 数据库中创建示例图
CREATE
(florentin:Person { name: 'Florentin', age: 16 }),
(adam:Person { name: 'Adam', age: 18 }),
(veselin:Person { name: 'Veselin', age: 20 }),
(hobbit:Book { name: 'The Hobbit', numberOfPages: 310 }),
(florentin)-[:KNOWS { since: 2010 }]->(adam),
(florentin)-[:KNOWS { since: 2018 }]->(veselin),
(adam)-[:READ]->(hobbit)
投影小型社交网络图
MATCH (n:Person)-[r:KNOWS|READ]->(m:Person|Book)
RETURN gds.graph.project('socialGraph', n, m,
{
sourceNodeLabels: labels(n),
targetNodeLabels: labels(m),
sourceNodeProperties: n { .age },
targetNodeProperties: CASE WHEN m:Person THEN m { .age } ELSE {} END,
relationshipType: type(r)
}
)
计算社交图中的度中心性
CALL gds.degree.mutate('socialGraph', {mutateProperty: 'score'})
删除节点属性
从
socialGraph
中所有投影节点删除 score
属性CALL gds.graph.nodeProperties.drop('socialGraph', ['score'])
YIELD propertiesRemoved
propertiesRemoved |
---|
4 |
上述示例要求所有给定属性至少存在于一个投影节点标签上。 |
删除给定类型的关系
我们可以从目录中指定名称的图中删除给定类型的所有关系。这对于释放主内存或删除意外添加的关系类型很有用。
只有当给定类型的关系不是图中存在的最后一种关系类型时,才能删除它们。如果我们仍然想删除这些关系,我们需要转而删除整个图。 |
从指定名称的图中删除所有
SIMILAR
类型的关系CALL gds.graph.relationships.drop(
'socialGraph', (1)
'READ' (2)
)
YIELD
graphName, relationshipType, deletedRelationships, deletedProperties
1 | 投影图的名称。 |
2 | 我们想要从投影图中删除的关系类型。 |
graphName | relationshipType | deletedRelationships | deletedProperties |
---|---|---|---|
"socialGraph" |
"READ" |
1 |
{} |