处理小数据集

时间:2015-08-11 14:32:38

标签: c# neo4j neo4jclient

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

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网络界面无法处理这些数据,只是显示它限制在少数位置!!!

1 个答案:

答案 0 :(得分:2)

你不应该一次尝试返回大量的推文,因为这很容易导致程序内存不足(即使neo4j没有问题)。而且,由于您只想设置一些属性,因此无需返回所有推文。

以下是一个非常简单的示例,说明如何将所有推文的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();