120
社区成员
![](https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png)
![](https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png)
![](https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png)
![](https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png)
1.实例点构建
1)从mongodb中约定的collection中查询需要入库的实例点,目前包括如下两种:
2)将查询出的没一万条数据封装成json文件,传入的fastdfs中
https://neo4j.com/labs/apoc/4.1/overview/apoc.load/apoc.load.json/
利用apoc特性,加载json文件,配合apoc.merge.node(labels,properties)函数进行批量构建
1)Failed to invoke procedure: Caused by: java.lang.RuntimeException: Import from files not enabled, please set apoc.import.file.enabled=true in your apoc.conf
2)Failed to invoke procedure: Caused by: java.lang.RuntimeException: Can’t read url or key file:/path/to/neo4j/import/tmp/filename as json: /path/to/neo4j//import/tmp/filename (No such file or directory)
将需要导入的json文件放入到neo4j的import目录行啊
1)第一步骤:注释掉dbms.directories.import=import配置
tips:这个设置限制所有的“LOAD CSV”导入文件在“import”目录下。 删除或注释到
允许文件从文件系统的任何地方加载; 这可能会引入安全问题。 看到
2)第二步:apoc.import.file.use_neo4j_config=false
tips:Neo4j 现在可以从文件系统的任何位置读取,因此在设置此属性之前请确保这是您的意图。
结合项目选用方式:将文件传入到fastdfs中,利用apoc.load.json(url)方式 加载json
UNWIND $urls AS x with x as url CALL apoc.load.json(url) YIELD value CALL apoc.merge.node(value.labels, value.properties) yield node RETURN count(*) as num |
关系名称定义:目前已知的只有 对象--->v_/b_(活动)--->对象 存在关系名称,关系名称为活动名称
api地址:https://neo4j.com/labs/apoc/4.4/overview/apoc.merge/apoc.merge.relationship/
apoc.merge.relationship(startNode :: NODE?, relationshipType :: STRING?, identProps :: MAP?, props :: MAP?, endNode :: NODE?, onMatchProps = {} :: MAP?) :: (rel :: RELATIONSHIP?) |
MATCH (p:Person {name: "Tom Hanks"}) MATCH (m:Movie {title:"You've Got Mail"}) CALL apoc.merge.relationship(p, "ACTED_IN", {roles:['Joe Fox']}, {created: datetime()}, m, {lastSeen: datetime()} ) YIELD rel RETURN rel; |
MATCH (p:Person {name: "Tom Hanks"}) MATCH (m:Movie {title:"You've Got Mail"}) CALL apoc.merge.relationship(p, $relType, $properties, {}, m, {}) YIELD rel RETURN rel; |
可按照点构建逻辑,先按照apoc.merge.relationship参数格式定义relationVo, 封装关系三元组,上传至fastdfs,然后利用apoc.load.json,批量构建关系批量构建关系
commit()过程适用于对数据库进行大规模的更新操作,通过限制每次处理的对象数量来减小事务规模以及相应的系统资源消耗。
使用该过程事先可以不需要知道要更新的数据库对象的数量,而只需要设置什么时候更新操作结束,例如在所有节点都有了一个新属性score后结束运行。
参数名 |
类型 |
缺省值 |
可为空 |
说明 |
statement |
字符串 |
无 |
fasle |
迭代执行的Cypher查询,需要返回一个非负的整数。 |
params |
MAP |
无 |
false |
statement中需要的参数,其中limit参数是必须的。 |
CALL apoc.periodic.commit(
"MATCH (n:人物) WHERE NOT exists(n.genre) WITH n LIMIT {limit} SET n.genre='男' RETURN count(*)",
{limit:10}
) ———————————————— 版权声明:本文为CSDN博主「俞博士」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/GraphWay/article/details/93711343 |