当前位置: 首页 > 知识库问答 >
问题:

通过Neo4j rest api发送的数据不会被持久化

翟志新
2023-03-14

我正在使用Neo4j rest api创建一个具有更多节点和关系的图结构。我使用以下cypher查询格式在单个post请求中发送一批节点及其关系。

UNWIND [[0,1], [0,6309]] AS pair
MATCH (n {name: pair[0]}), (m {name: pair[1]})
CREATE (n)-[:X]->(m)

我正在从一个1GB大小的文件中读取数据,并将数据分批上传到neo4j。对于发送的所有请求,我得到的响应代码为200,但是当我检查{$neo4j_home}/data/database/graph.db大小时,它只显示244K大小。另外,graph.db中的du-hc*store.db*命令显示所有nodeStore.db、relationshipStore.db和propertyStore.db的大小都为0。为什么通过rest api上传的数据没有写入到graph DB中的文件中?如有任何帮助,不胜感激。

0       neostore.nodestore.db
4.0K    neostore.nodestore.db.id
8.0K    neostore.nodestore.db.labels
4.0K    neostore.nodestore.db.labels.id
0       neostore.propertystore.db
8.0K    neostore.propertystore.db.arrays
4.0K    neostore.propertystore.db.arrays.id
4.0K    neostore.propertystore.db.id
8.0K    neostore.propertystore.db.index
4.0K    neostore.propertystore.db.index.id
8.0K    neostore.propertystore.db.index.keys
4.0K    neostore.propertystore.db.index.keys.id
0       neostore.relationshipstore.db
Client client = Client.create();
client.addFilter(new HTTPBasicAuthFilter(user, password));
WebResource cypherResource = client.resource("http://localhost:7474/db/data/cypher");
ClientResponse cypherResponse = cypherResource.accept(MediaType.APPLICATION_JSON)
            .type(MediaType.APPLICATION_JSON_TYPE).entity(query).post(ClientResponse.class);

设置为实体的示例查询:

{"query":"UNWIND [[0,1], [0,6309]] AS pair
MATCH (n {name: pair[0]}), (m {name: pair[1]}) CREATE (n)-[:X]->(m)"}

共有1个答案

索嘉石
2023-03-14

我得到了REST上下文的侧向跟踪,而实际上查询在任何上下文(REST API、Neo4j浏览器、neo4j-shell等)中都不能工作。

根据所有文件的大小,数据库中没有任何关系或节点。查询从节点上的匹配开始:因为没有节点,所以create子句永远不会执行。

要创建不存在的节点,然后创建关系,需要使用merge而不是match。您还应该在节点上设置一个标签,为了性能和正确性,在该标签name属性上创建一个unicity约束(它将同时创建一个索引):

CREATE CONSTRAINT ON (n:Node) ASSERT n.name IS UNIQUE;
UNWIND [[0,1], [0,6309]] AS pair
MERGE (n:Node {name: pair[0]})
MERGE (m:Node {name: pair[1]})
CREATE (n)-[:X]->(m)

您是否知道load csvCypher子句,该子句可以比远程查询更快地导入数据,即使您手动批处理成对也是如此?

 类似资料:
  • 我正在使用网络逻辑10.3。我正在尝试配置一个持久订阅,其中包含由 jdbc 存储(在 Oracle DB 中)支持的持久消息。我有一个主题,MDB 正在作为持久订阅者侦听该主题。在场景-1下:如果我发送消息,它会命中MDB。 在场景2中:我挂起了MDB,希望发送到主题的消息只要不被MDB(它是唯一注册的持久订阅者)使用,就会一直存在。但是当我向主题发送消息时,它短暂地出现在那里,然后就消失了(我

  • 问题内容: 我有一个内置的javascript,它可以执行以下操作:通过ajax-> php-> sql获取内容,并在单击内容后在index.php上显示它,将显示新内容。 现在,我想拥有一个在将内容单击到php之后发送数据的函数,该函数将在db中执行某些操作。如何创建将发送数据的功能?谢谢! 这是我的显示内容的代码: }); }` 问题答案: 您可以通过在jQuery.ajax 设置中包含值,将

  • 所以我试图通过ajax将图像作为一个blob发送。blob的类型正确,大小约为4.5 kb。我试着这样发送: 接收页面看起来像这样: 它告诉我找不到索引“图像”。所以不仅数据没有发送,甚至索引也被省略了。我做错了什么? 编辑: toBlob和toDataURL都不会产生任何东西,只是一个空的PNG。有没有办法将数据从帧缓冲区转换成Base64编码的jpg或png?

  • 问题内容: 我正在使用jQuery将div的HTML内容发布到PHP文件。HTML内容包含表,输入,较小的div,我想获取主DIV的内容并将其发送到数据库。我能想到的唯一选择是POST方法,但我不知道是否可以发送纯HTML。从div发送HTML内容到要插入MySQL的PHP​​文件还有其他选择吗? 谢谢。 编辑: 我现在能够使用jQuery的POST发送完整的HTML数据。但是,来自该DIV的HT

  • 在我的应用程序中,如果多个用户使用相同的WiFi连接而不使用TCP,我希望通过WiFi将文件发送给多个用户。如何获取连接到指定wify的用户列表。我试过样品,但什么也没得到。