使用索引查找返回cypher中的多个节点

时间:2013-05-09 14:25:07

标签: neo4j cypher

我有多次调用以下cypher查询。

start n=node:MyIndex(Name="ABC")
return n

然后在代码中的其他地方

start m=node:MyIndex(NAME="XYZ")
return m

我的数据库托管在Azure中,因此我遇到了延迟/性能问题。为了加快流程并减少多次往返,我考虑将多个Cypher查询合并为一个。

实际上,我在查找中获得了10个以上的节点,但为了简单起见,我决定以下面的两个节点显示示例。

start n=node:MyIndex(Name="ABC"), m=node:MyIndex(NAME="XYZ")
return n, m

我的目标是在一次往返而不是10+中获得我所能做的。如果所有节点上的索引查找成功,它将成功运行。但是,如果一个索引查找失败,则Cypher查询返回零行甚至。我希望在缺失的节点上我将在n或m中获得等效的NULL。但是,没有运气。

请建议我做错了什么以及减少往返的任何变通办法。非常感谢!

1 个答案:

答案 0 :(得分:1)

您可以使用lucene syntax的参数化查询,例如:

START n=node:MyIndex({query}) return n

并使用

进行参数化
{'query':'Name:(ABC XYZ)'}

其中,名称列表是一个字符串,其中包含您要查找的空格分隔名称。