0

我多次调用以下密码查询。

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 等价物。然而,没有运气。

请建议我做错了什么以及减少往返行程的任何解决方法。非常感谢!

4

1 回答 1

1

您可以使用带有lucene 语法的参数化查询,例如:

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

并参数化

{'query':'Name:(ABC XYZ)'}

其中名称列表是您要查找的以空格分隔的名称的字符串。

于 2013-05-09T14:55:31.553 回答