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性能_Neo4j_Cypher - Fatal编程技术网

聚合查询上的Neo4J性能

聚合查询上的Neo4J性能,neo4j,cypher,Neo4j,Cypher,给出以下模式:(抱歉,它是弯曲的) 我试图得到一个地方的活动列表,以及有多少人在那个地方玩那个特定的活动 start root = node(0) > match root-[:HAS_PLACE]->place-[:CAN_PLAY]->activity<-[:CAN_PLAY]-place2<-[?:PLAYS_AT]-user > where place.Id = 1307 > return activity, count(user) ==>

给出以下模式:(抱歉,它是弯曲的)

我试图得到一个地方的活动列表,以及有多少人在那个地方玩那个特定的活动

start root = node(0)
> match root-[:HAS_PLACE]->place-[:CAN_PLAY]->activity<-[:CAN_PLAY]-place2<-[?:PLAYS_AT]-user
> where place.Id = 1307
> return activity, count(user)
==> +---------------------------------------------------+
==> | activity                            | count(user) |
==> +---------------------------------------------------+
==> | Node[5]{Name->"Swimming",Id->5}     | 0           |
==> | Node[3]{Name->"Kick Boxing",Id->3}  | 0           |
==> | Node[12]{Name->"Basketball",Id->22} | 0           |
==> | Node[13]{Name->"Handball",Id->23}   | 0           |
==> | Node[6]{Name->"Racquetball",Id->6}  | 0           |
==> | Node[2]{Name->"Aerobics",Id->2}     | 0           |
==> +---------------------------------------------------+
==> 6 rows, 21403 ms 
start root=节点(0)
>匹配根-[:HAS_PLACE]->PLACE-[:CAN_PLAY]->活动返回活动,计数(用户)
==> +---------------------------------------------------+
==>|活动|计数(用户)|
==> +---------------------------------------------------+
==>|节点[5]{Name->“sweering”,Id->5}|0|
==>|节点[3]{Name->“踢拳击”,Id->3}|0|
==>|节点[12]{Name->“Basketball”,Id->22}|0|
==>|节点[13]{Name->“手球”,Id->23}|0|
==>|节点[6]{Name->“壁球”,Id->6}|0|
==>|节点[2]{Name->“健美操”,Id->2}|0|
==> +---------------------------------------------------+
=>6行,21403毫秒
虽然我认为上面这些都是我想要的,但花21秒并不是一件好事。我相信这是由于可选关系,甚至是回溯,但我如何才能进行更好的查询?

试试:

start root = node(0)
match root-[:HAS_PLACE]->place-[:CAN_PLAY]->activity, user-[?:PLAYS_AT]->place
where place.Id = 1307
return activity, count(user)
或者在placenodes上使用索引并执行以下操作:

start place = node:places(Id=1307)
match place-[:CAN_PLAY]->activity, user-[?:PLAYS_AT]->place
return activity, count(user)
尝试:

或者在placenodes上使用索引并执行以下操作:

start place = node:places(Id=1307)
match place-[:CAN_PLAY]->activity, user-[?:PLAYS_AT]->place
return activity, count(user)

很好,第一个需要77毫秒。谢谢,我知道一定有更好的方法。很好,第一个需要77毫秒。谢谢,我知道一定有更好的办法。