Post 对 UNION 结果密码查询 neo4j 的处理
Post processing on UNION result cypher query neo4j
我使用 lucene 索引编写了以下查询。我知道 UNION 在 neo4j 中没有分页支持。我想 post 处理
此查询的最终结果对结果进行分页。
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 的错误。
我需要post处理并集最终结果以对其进行分页
引用的 github 问题尚未解决,因此 post 无法处理 UNION
。
在此期间,作为一种解决方法,您可以将查询拆分为两个查询。第一个结合了索引查找和 returns 节点 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 收集到一个数组中,并使用密码参数提交第二个查询:
MATCH (n)
WHERE ID(n) IN {myIdArray}
WITH n
// placeholder for rest of this query
其中myIdArray
的参数值为step1返回的ID。
我有一个 a few weeks ago, and it turns out Cypher currently does not support post-UNION processing。
这意味着您应该使用相同的条件过滤并集的两个输入。
或者(如 中所述),如果可以使用 APOC,则可以 post 处理查询结果:
CALL apoc.cypher.run("... UNION ...", NULL) YIELD n, r, x
WHERE ...
RETURN n, r, x;
更新:现在可以在 Neo4j 4.0 中使用 CALL {subquery}
construct。
我使用 lucene 索引编写了以下查询。我知道 UNION 在 neo4j 中没有分页支持。我想 post 处理 此查询的最终结果对结果进行分页。
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 的错误。
我需要post处理并集最终结果以对其进行分页
引用的 github 问题尚未解决,因此 post 无法处理 UNION
。
在此期间,作为一种解决方法,您可以将查询拆分为两个查询。第一个结合了索引查找和 returns 节点 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 收集到一个数组中,并使用密码参数提交第二个查询:
MATCH (n)
WHERE ID(n) IN {myIdArray}
WITH n
// placeholder for rest of this query
其中myIdArray
的参数值为step1返回的ID。
我有一个
这意味着您应该使用相同的条件过滤并集的两个输入。
或者(如
CALL apoc.cypher.run("... UNION ...", NULL) YIELD n, r, x
WHERE ...
RETURN n, r, x;
更新:现在可以在 Neo4j 4.0 中使用 CALL {subquery}
construct。