Neo4J Bloom加载Python导入数据后不显示节点属性及分类问题
问题根因
你编写的导入代码没有为节点设置标签(Label),Neo4j Bloom的透视图功能依赖节点标签做分类识别,无标签的节点只会被识别为通用的node分类,无法自动匹配对应属性做展示。而Neo4j浏览器不强制依赖标签,所以可以正常显示节点属性。
解决步骤
方案1:修改导入代码重新导入(适合还没正式投入使用的新库)
修改Python代码中创建节点的Cypher语句,为不同类型的节点加上对应标签,示例修改后代码如下:
from neo4j import GraphDatabase driver = GraphDatabase.driver("connection", auth=("neo4j", "password")) def add_data(tx): tx.run("LOAD CSV WITH HEADERS FROM 'file:///C:/Users/Damian/PycharmProjects/NeoJ/DataMap.csv' AS Map \ MERGE (source:DataNode {node_name: Map.source}) \ MERGE (destination:DataNode {node_name: Map.destination}) \ CREATE (source)-[:FEEDS_INTO]->(destination)") def add_other(tx): tx.run("LOAD CSV WITH HEADERS FROM 'file:///C:/Users/Damian/PycharmProjects/NeoJ/Data.csv' AS Data \ Match (node:DataNode {node_name: Data.dane}) \ MERGE (system:System {system_name: Data.system}) \ MERGE (scope:Scope {scope_name: Data.scope}) \ MERGE (process:Process {process_name: Data.process}) \ MERGE (owner:Owner {owner_name: Data.owner}) \ MERGE (node)-[:UNDER_SYSTEM]->(system) \ MERGE (system)-[:UNDER_SCOPE]->(scope) \ MERGE (node)-[:HAS_PROCESS]->(process) \ MERGE (owner)-[:IS_OWNER_OF]->(node) ") def add_data_properties(tx): tx.run("LOAD CSV WITH HEADERS FROM 'file:///C:/Users/Damian/PycharmProjects/NeoJ/Data.csv' AS Data \ MATCH (n:DataNode {node_name: Data.dane }) \ SET n.system = Data.system \ SET n.scope = Data.scope \ SET n.process = Data.process \ SET n.owner = Data.owner") with driver.session() as session: session.write_transaction(add_data) session.write_transaction(add_other) session.write_transaction(add_data_properties) driver.close()
方案2:直接给现有节点补标签(不需要重新导数据)
在Neo4j浏览器中依次执行以下Cypher语句,为已有节点补充标签:
// 给数据节点加DataNode标签 MATCH (n) WHERE EXISTS(n.node_name) SET n:DataNode; // 给系统节点加System标签 MATCH (n) WHERE EXISTS(n.system_name) SET n:System; // 给域节点加Scope标签 MATCH (n) WHERE EXISTS(n.scope_name) SET n:Scope; // 给流程节点加Process标签 MATCH (n) WHERE EXISTS(n.process_name) SET n:Process; // 给负责人节点加Owner标签 MATCH (n) WHERE EXISTS(n.owner_name) SET n:Owner;
Bloom端配置
完成标签补充后,重新生成Bloom透视图,此时透视图会自动识别出DataNode、System等多个节点分类,你可以在透视图的分类设置中,为每个分类勾选需要在节点上展示的属性即可正常显示。
内容的提问来源于stack exchange,提问作者neekitit
相关产品推荐
相关产品推荐

