对UNION结果cypher查询neo4j进行后处理

时间:2015-02-20 04:45:09

标签: neo4j cypher

我使用lucene索引编写了下面的查询。我知道UNION在neo4j中没有分页支持。我想发帖过程了 此查询的最终结果是对结果进行分页。

START user=node:peopleSearch('username:abhay*') RETURN user , user.createdDate as time UNION START rel= Relationship:peopleSearch('skillName:Java23') RETURN StartNode(rel) as user , StartNode(rel).createdDate as time

我已关注此link。但是它给了我关于UNION RESULT的错误。

我需要发布处理联合最终结果以对其进行分页

1 个答案:

答案 0 :(得分:2)

引用的github问题尚未解决,因此无法对UNION进行后期处理。

在此期间,您可以将查询拆分为两个查询。第一个结合索引查找并返回节点ID:

START user=node:peopleSearch('username:abhay*') RETURN id(user) as id     
UNION 
START rel= Relationship:peopleSearch('skillName:Java23') RETURN id(StartNode(rel)) as id

在客户端,将返回的ID收集到一个数组中,并使用cypher参数提交第二个查询:

MATCH (n)
WHERE ID(n) IN {myIdArray}
WITH n
// placeholder for rest of this query

其中myIdArray的参数值是step1返回的ID。