我有这样的查询
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按查询中所示的顺序对电影进行排序。
谢谢!
发布于 2017-07-28 09:59:19
您可能想看看Neo4j关于工会后处理的知识库文章。这提供了一些执行联合的方法,但是能够在之后执行排序操作。
你当然需要点什么来解决这个问题。我将为每个字段添加返回的第三个字段(例如,order),并显式地将第一个子查询设置为1,第二个设置为2个,第三个设置为3个。然后,在合并后进行处理时,只需对该字段进行排序。
https://stackoverflow.com/questions/45298182
复制相似问题