首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Neo4j -查询:在一个集合中以特殊顺序组合不同的查询结果

Neo4j -查询:在一个集合中以特殊顺序组合不同的查询结果
EN

Stack Overflow用户
提问于 2017-07-25 08:42:56
回答 1查看 42关注 0票数 1

我有这样的查询

代码语言:javascript
复制
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 director1
  • 5-8 director2
  • 9-10与演员关系最密切的

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-07-28 09:59:19

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45298182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档