通过前一个查询的WITH结果将变量传递给START子句

时间:2015-07-15 18:16:22

标签: neo4j cypher

我有一个图形结构,带有" hyperedges" - 具有图中某个节点的唯一属性的边属性。我想编写一个查找此类边的Cypher查询,然后使用该属性的值和后续的START子句来查找引用的节点。我尝试了一些事情,但我最接近的是:

MATCH (start)-[relationship]->(end)
WHERE HAS(relationship.source)
WITH start, end, relationship.source AS source
START src = node:node_auto_index(src = {source})
RETURN start, end, src

抱怨Expected a parameter named source

{source}删除括号也会产生错误:

START src = node:node_auto_index(src = source)

我可以将值传递给后续查询中的WHERE子句,如下所示:

MATCH (start)-[relationship]->(end)
WHERE HAS(relationship.source)
WITH start, end, relationship.source AS source
MATCH (src)
WHERE src.src = source
RETURN start, end, src

但是这并没有利用遗留索引导致查询非常慢。

有没有办法通过START将先前查询的结果传递给WITH子句?

0 个答案:

没有答案