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 “执行失败”;未知标识符“;在使用UNION时按顺序排列_Neo4j_Cypher - Fatal编程技术网

Neo4j “执行失败”;未知标识符“;在使用UNION时按顺序排列

Neo4j “执行失败”;未知标识符“;在使用UNION时按顺序排列,neo4j,cypher,Neo4j,Cypher,我对以下cypher查询返回的错误感到困惑: MATCH (p1:Person)-[r_ptq]->(tq:Ticket) WHERE tq.name IN ["music", "sports", "movie"] RETURN distinct(p1) AS person, count(r_ptq) AS score, collect(tq.name) AS tickets ORDER BY score DESC LIMIT 10 UNION MATCH (t:Ticket)<

我对以下cypher查询返回的错误感到困惑:

MATCH (p1:Person)-[r_ptq]->(tq:Ticket)
WHERE tq.name IN ["music", "sports", "movie"]
RETURN distinct(p1) AS person, count(r_ptq) AS score, collect(tq.name) AS tickets
ORDER BY score DESC LIMIT 10

UNION

MATCH (t:Ticket)<-[r_ttq]-(tq:Ticket)
WHERE tq.name IN ["music", "sports", "movie"]
WITH distinct(t), sum(r_ttq.weight) AS weight
ORDER BY weight DESC LIMIT 50
MATCH (t)<--(p:Person)
RETURN distinct(p) AS person, sum(weight) AS score, collect(t.name) AS tickets
ORDER BY score DESC LIMIT 10
显然,将查询与UNION组合时,
ORDER BY
指令中的标识符“score”无法识别。如果我分别运行这两个查询(在
UNION
上方和下方),这将非常有效。此外,如果我删除
ORDER BY
指令,它将与UNION一起工作,但这当然会改变行为

任何关于如何解决这一问题的建议都将不胜感激

我调整了上面的示例以处理上的图形

匹配(p1:机组)-[r\u ptq]->(tq:机组)
其中tq.name位于[“Neo”,“Morpheus”]
返回不同的(p1)作为个人,计数(r_ptq)作为分数,收集(tq.name)作为票据
按分数顺序描述
限制10
联合

MATCH(t:Crew)Cypher查询在语法上是正确的,可以在Neo4j浏览器中工作。console.Neo4j.org上的控制台似乎有一些JavaScript正则表达式验证,在与一起跟踪标识符时存在错误。我们将研究此错误并在控制台中修复它


现在,请使用Neo4j 2.0浏览器,下载Neo4j至。

此查询执行时没有问题。请在console.Neo4j.org中试用
Unknown identifier `score`.
MATCH (p1:Crew)-[r_ptq]->(tq:Crew)
WHERE tq.name IN ["Neo", "Morpheus"]
RETURN distinct(p1) AS person, count(r_ptq) AS score, collect(tq.name) AS tickets
ORDER BY score DESC
LIMIT 10
UNION
MATCH (t:Crew)<-[r_ttq]-(tq:Crew)
WHERE tq.name IN ["Neo", "Morpheus"]
WITH distinct(t), count(r_ttq) AS weight
ORDER BY weight DESC
LIMIT 50
MATCH (t)<--(p:Crew)
RETURN distinct(p) AS person, sum(weight) AS score, collect(t.name) AS tickets
ORDER BY score DESC
LIMIT 10