Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 1.9.2:查询/筛选和统计多个节点类型_Neo4j - Fatal编程技术网

Neo4j 1.9.2:查询/筛选和统计多个节点类型

Neo4j 1.9.2:查询/筛选和统计多个节点类型,neo4j,Neo4j,在Neo4j 1.9.2中,我想计算一组节点中每个节点的所有关系 我的所有节点都有三个属性:类型、id、和创建的。他们都通过“跟随”关系联系在一起。以下是它们如何组合在一起的示例: user('id:1')-[follows]->review('id:1') user('id:1')-[follows]->user('id:2') user('id:2')-[follows]->review('id:1') 你明白了 结果应该是这样的: [ { followers

在Neo4j 1.9.2中,我想计算一组节点中每个节点的所有关系

我的所有节点都有三个属性:
类型
id
、和
创建的
。他们都通过“跟随”关系联系在一起。以下是它们如何组合在一起的示例:

user('id:1')-[follows]->review('id:1')
user('id:1')-[follows]->user('id:2')
user('id:2')-[follows]->review('id:1')
你明白了

结果应该是这样的:

[
  {
    followers: 2,
    id: 1
    created: 2013-12-13T12:13:42-08:00
    type: review
  },
  {
    followers: 1,
    id: 2,
    created: 2012-02-13T12:13:43-08:00
    type: user
  },
  {
    followers: 0,
    id: 1,
    created: 2012-02-13T12:13:43-08:00,
    type: user
  }
]
start user1=node:user('id:1'),
      user2=node:user('id:2'),
      review1=node:review1('id:1')

match user1<-[user1_f:follows]-(),
      user2<-[user2_f:follows]-(),
      review1<-[review1_f:follows]-()

return user1, count(user1_f),
       user2, count(user2_f),
       review1, count(review1_f);
 start users=node:user('id:(1 OR 2 OR 3 OR 4)')
 match user<-[f:follows]-(),
 return user, count(f);
我提供的数据基本上如下所示:

{
  users: [1, 2],
  reviews: [1]
}
我尝试过这样的查询:

[
  {
    followers: 2,
    id: 1
    created: 2013-12-13T12:13:42-08:00
    type: review
  },
  {
    followers: 1,
    id: 2,
    created: 2012-02-13T12:13:43-08:00
    type: user
  },
  {
    followers: 0,
    id: 1,
    created: 2012-02-13T12:13:43-08:00,
    type: user
  }
]
start user1=node:user('id:1'),
      user2=node:user('id:2'),
      review1=node:review1('id:1')

match user1<-[user1_f:follows]-(),
      user2<-[user2_f:follows]-(),
      review1<-[review1_f:follows]-()

return user1, count(user1_f),
       user2, count(user2_f),
       review1, count(review1_f);
 start users=node:user('id:(1 OR 2 OR 3 OR 4)')
 match user<-[f:follows]-(),
 return user, count(f);
start user1=node:user('id:1'),
user2=node:user('id:2'),
review1=节点:review1('id:1')

匹配USER1

如果您想运行许多节点的计数操作,请考虑使用这样的索引:

[
  {
    followers: 2,
    id: 1
    created: 2013-12-13T12:13:42-08:00
    type: review
  },
  {
    followers: 1,
    id: 2,
    created: 2012-02-13T12:13:43-08:00
    type: user
  },
  {
    followers: 0,
    id: 1,
    created: 2012-02-13T12:13:43-08:00,
    type: user
  }
]
start user1=node:user('id:1'),
      user2=node:user('id:2'),
      review1=node:review1('id:1')

match user1<-[user1_f:follows]-(),
      user2<-[user2_f:follows]-(),
      review1<-[review1_f:follows]-()

return user1, count(user1_f),
       user2, count(user2_f),
       review1, count(review1_f);
 start users=node:user('id:(1 OR 2 OR 3 OR 4)')
 match user<-[f:follows]-(),
 return user, count(f);
start users=node:user('id:(1或2或3或4)'

匹配用户是的,我们很想更新,不幸的是目前还不可能。但它已经在路线图上了!所以我听到的是,除非对所有可能的组合进行索引,否则无法跨多个完全任意的类型执行此操作。我认为最好只对每个类型执行一个查询(因为我们没有那么多不同的类型)。谢谢我终于开始实施这个优化,响应时间减少了10倍。非常有帮助!