我在本地计算机上使用neo4j已经有一段时间了,它看起来效果很好,但突然出现一个特定的查询我收到此错误消息(所有其他查询工作正常):
WebSocket连接失败。由于Web浏览器中的安全限制,此Neo4j驱动程序无法使用此故障原因。请使用您的浏览器开发控制台确定失败的根本原因。常见原因包括数据库不可用,使用错误的连接URL或临时网络问题。如果您已启用加密,请确保您的浏览器配置为信任Neo4j配置使用的证书。 WebSocket readyState
是:3
我尝试运行的查询是:
match (p:Node1)-[c:Relation]->(q:Node2)
SET c.attribute = false;
每个其他查询都运行正常,我可以设置我想要的任何属性,只是对于这个查询,控制台计算一段时间,pc开始滞后然后抛出异常。也许是超时问题还是什么?
我在几篇帖子中看到,它可能与我的Java版本有关?我使用的是oracle-8 java版本:
"1.8.0_161" Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
任何人都知道我可以尝试什么?
我也尝试在conf文件中取消注释这些行,但它没有帮助。
# You can also choose a specific advertised hostname or IP address, and
# configure an advertised port for each connector, by setting their
# individual advertised_address.
# Bolt connector
dbms.connector.bolt.enabled=true
#dbms.connector.bolt.tls_level=OPTIONAL
dbms.connector.bolt.listen_address=0.0.0.0:7687
非常感谢您的意见和建议。
干杯
答案 0 :(得分:1)
看到您有大约2500万个关系要处理,在单个事务中执行所有这些关系是行不通的。需要对这种大小的写操作进行批处理,以免烧坏堆或挂起Neo4j。
APOC Procedures是您最好的选择,它支持输入查询和executing operations upon that input in batches。
以下是您可以将此用于查询的方式:
CALL apoc.periodic.iterate(
"match (:Node1)-[c:Relation]->(:Node2)
return c",
"SET c.attribute = false",
{iterateList:true, parallel:false}) YIELD batches, errorMessages
RETURN *
答案 1 :(得分:0)
修改文件$NEO4J_HOME/conf/neo4j.conf
并取消注释第dbms.connector.bolt.address=0.0.0.0:7687
行。之后,重启Neo4j。