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

C# 处理小数据集时出现Neo4jClient内存不足异常,c#,neo4j,neo4jclient,C#,Neo4j,Neo4jclient,我使用neo4j社区版来存储从TweeerAPI获取的数据,直到现在我收集了大约200000条Tweet,并将它们存储在neo4j数据库中(每个都作为一个节点)。我正在使用neo4jclient在我的c#应用程序中连接到neo4j。 当我运行下面的代码获取这个节点时,它会导致内存不足异常 var client = new GraphClient(new Uri("http://localhost:7474/db/data")); client.Connect();

我使用neo4j社区版来存储从TweeerAPI获取的数据,直到现在我收集了大约200000条Tweet,并将它们存储在neo4j数据库中(每个都作为一个节点)。我正在使用neo4jclient在我的c#应用程序中连接到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;
var-client=new-GraphClient(新Uri(“http://localhost:7474/db/data"));
client.Connect();
var result=client.Cypher.Match(“tweet”).Return(tweet=>tweet.As()).Results;
我搜索了很多,不知道其他人会谈论包含5000万个节点和这么多关系的数据集!!!但是我的简单的小数据集导致了这种异常。 我需要的是如何处理这件事?实际上,我想处理每个节点,并为每个节点添加更多属性


我还应该提到,我的neo4j网络界面不能处理这些数据,只能显示它限制在少数的地方

您不应该试图一次返回大量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();

从内存异常中可以得到什么?在你的C#应用程序或Neo4j服务器上?@MicTech在上面代码的最后一行!!!var结果…问题不在于Neo4j。您正在尝试将所有tweet加载到程序的内存中。你应该避免这样。我建议做一些过滤。@MicTech我想给所有tweet添加一个属性!我应该怎么做?你能描述一下你想要解决的问题吗?我的问题是我的节点中没有foo属性,实际上我需要添加和设置这个属性!即使属性不存在,此代码是否也会添加属性?是。(但是,如果您以后想返回
Tweets
对象中的
foo
属性,您必须将其定义添加到您的Tweets类中。)我明天会检查它,非常感谢您的回答,我将此标记为最佳答案。是否仍要获取一个属性并根据此设置新属性?我的意思是我想根据一个现有属性设置新属性:(我应该怎么做?我应该提到我需要对该属性进行一些字符串处理以生成新属性):(