首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Neo4j随机查询抛出错误

Neo4j随机查询抛出错误
EN

Stack Overflow用户
提问于 2018-03-09 16:45:23
回答 2查看 66关注 0票数 0

我在本地机器上使用neo4j已经有一段时间了,它似乎工作得很好,但是突然间,对于一个特定的查询,我得到了这个错误消息(所有其他查询都正常工作):

WebSocket连接失败。由于web浏览器中的安全限制,此Neo4j驱动程序无法使用故障原因。请使用浏览器开发控制台确定故障的根本原因。常见的原因包括数据库不可用、使用错误的连接URL或临时网络问题。如果已启用加密,请确保浏览器配置为信任配置为使用的证书Neo4j。WebSocket readyState是:3

我试图运行的查询是:

代码语言:javascript
复制
match (p:Node1)-[c:Relation]->(q:Node2)
SET c.attribute = false;

所有其他查询都正常工作,我可以设置我想要的任何属性,只是对于这个查询,控制台计算一段时间,pc开始滞后,然后抛出异常。也许这是个暂停问题还是什么?

我在几篇文章中看到,这可能与我的Java版本有关?我使用的是oracle-8 java版本:

代码语言:javascript
复制
 "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文件中取消对这些行的注释,但是没有帮助。

代码语言:javascript
复制
# 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

非常感谢您的想法和建议。

干杯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-13 09:54:46

看到您有大约2500万的关系需要处理,在一个事务中执行所有这些都是行不通的。这种规模的写入操作需要批处理,以避免引发堆或挂起Neo4j。

载脂蛋白C程序是您在这里的最佳选择,它支持接受输入查询和对该输入分批执行操作。

下面是如何将其用于查询:

代码语言:javascript
复制
CALL apoc.periodic.iterate(
"match (:Node1)-[c:Relation]->(:Node2)
 return c", 
"SET c.attribute = false", 
{iterateList:true, parallel:false}) YIELD batches, errorMessages
RETURN *
票数 1
EN

Stack Overflow用户

发布于 2018-03-09 21:23:56

编辑文件$NEO4J_HOME/conf/neo4j.conf并取消对行dbms.connector.bolt.address=0.0.0.0:7687的注释。然后,重新启动Neo4j。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49198388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档