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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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 a = node:lucene_index('name: "actor1"') MATCH (a:Actor)--(b:Movies) WHERE b.director = 'director1' WITH b LIMIT 4 RETURN 'Movies' AS resultType, collect (DISTINCT b) as resultList UNION ALL START a = node:lucene_index('name: "actor

我有一个这样的问题

START a = node:lucene_index('name: "actor1"')
MATCH (a:Actor)--(b:Movies)
WHERE b.director = 'director1'
WITH b LIMIT 4
RETURN 'Movies' AS resultType, collect (DISTINCT b) as resultList

UNION ALL 

START a = node:lucene_index('name: "actor1"')
MATCH (a:Actor)--(b:Movies)
WHERE b.director = 'director2'
WITH b LIMIT 4
RETURN 'Movies' AS resultType, collect (DISTINCT b) as resultList

UNION ALL 

START a = node:lucene_index('name: "actor1"')
MATCH (a:Actor)-[r]-(b:Movies)
WITH b
MATCH (b)-[r2]-(b2:Actor)
WITH b, count(r2) as relations
ORDER BY toInt(relations) DESC
LIMIT 2
RETURN 'Movies' AS resultType, collect (DISTINCT b) as resultList
是否可以将这些查询合并为一个查询? resultList必须按照查询中显示的顺序包含电影,这一点很重要

  • 1-4董事1
  • 5-8董事2
  • 9-10与演员关系最密切

谢谢大家!

您可能想看看关于的Neo4j知识库文章。这提供了一些执行联合的方法,但之后可以执行排序操作


当然,你需要一些东西来解决这个问题。我将为每个子查询添加第三个返回的字段(例如,
order
),并显式地将第一个子查询设置为1,第二个子查询设置为2,第三个子查询设置为3。然后,在联合后处理时,只需对该字段进行排序。

您可能需要查看上的Neo4j知识库文章。这提供了一些执行联合的方法,但之后可以执行排序操作


当然,你需要一些东西来解决这个问题。我将为每个子查询添加第三个返回的字段(例如,
order
),并显式地将第一个子查询设置为1,第二个子查询设置为2,第三个子查询设置为3。然后在联合后处理时只需对该字段进行排序。

您使用的语法已被弃用(
START a=node:(…)
)。您使用的是哪一个Neo4j版本?我们知道不推荐使用的索引,希望我们的解析软件(它填充了我们的数据库)很快就会升级(Neo4j版本是3.0.2)。(我们的DB不包含电影和演员:)我只是写了一个抽象的例子,但升级并不能改变neo4j将使用关系触发“MATCH(a:Actor)-(b:movies)”两次一次的事实。我想知道是否有一种方法可以在一个集合中收集不同排序的结果。您使用的语法已被弃用(
START a=node:(…)
)。您使用的是哪一个Neo4j版本?我们知道不推荐使用的索引,希望我们的解析软件(它填充了我们的数据库)很快就会升级(Neo4j版本是3.0.2)。(我们的DB不包含电影和演员:)我只是写了一个抽象的例子,但升级并不能改变neo4j将使用关系触发“MATCH(a:Actor)-(b:movies)”两次一次的事实。我想知道是否有一种方法可以在一个集合中收集不同排序的结果