Neo4jClient处理小数据集时出现内存不足异常

本文关键字:内存不足 异常 处理 小数 数据集 Neo4jClient | 更新日期: 2023-09-27 18:07:23

我使用neo4j社区版来存储从tweeter API获取的数据,到目前为止,我收集了大约200000条tweet并将它们存储在neo4j数据库中(每个作为一个节点)。我使用neo4jclient连接到neo4j在我的c#应用程序。当我运行下面的代码来获得这些节点时,它会导致内存不足异常!!

var client = new GraphClient(new Uri("http://localhost:7474/db/data"));
        client.Connect();
        var result = client.Cypher.Match("tweet").Return(tweet => tweet.As<Tweets>()).Results;

我搜索了很多,想知道其他人谈论包含5000万个节点和这么多关系的数据集!!但是我的简单的小数据集导致了这种异常。我需要的是如何处理这件事?实际上我想处理每个节点并为每个节点添加更多属性!

我还应该提到,我的neo4j web界面不能处理这些数据,只是显示它限制在小数量!!

Neo4jClient处理小数据集时出现内存不足异常

您不应该尝试一次返回非常多的tweet,因为这很容易导致程序耗尽内存(即使neo4j没有问题)。而且,由于您只想设置一些属性,因此没有必要返回所有tweet。

下面是一个非常简单的例子,如何将所有tweet的foo属性设置为相同的值,而不返回任何结果。

var client = new GraphClient(new Uri("http://localhost:7474/db/data"));
client.Connect();
var result = client.Cypher
  .Match("tweet")
  .Set("tweet.foo = {foo}")
  .WithParam("foo", 123)
  .ExecuteWithoutResults();