Neo4j 使用索引查找返回密码中的多个节点

Neo4j 使用索引查找返回密码中的多个节点,neo4j,cypher,Neo4j,Cypher,我多次调用下面的密码查询 start n=node:MyIndex(Name="ABC") return n 然后在代码中的其他地方 start m=node:MyIndex(NAME="XYZ") return m 我的数据库托管在Azure中,因此存在延迟/性能问题。为了加快这个过程,减少多次往返,我考虑将多个密码查询组合成一个查询 实际上,我在查找中得到了10+个节点,但为了简单起见,我决定在下面只显示两个节点的示例 start n=node:MyIndex(Name="ABC"),

我多次调用下面的密码查询

start n=node:MyIndex(Name="ABC")
return n
然后在代码中的其他地方

start m=node:MyIndex(NAME="XYZ")
return m
我的数据库托管在Azure中,因此存在延迟/性能问题。为了加快这个过程,减少多次往返,我考虑将多个密码查询组合成一个查询

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

start n=node:MyIndex(Name="ABC"), m=node:MyIndex(NAME="XYZ")
return n, m
我的目标是在一次往返中得到我能得到的,而不是10+次。如果在所有节点上的索引查找成功,则它将成功工作。但是,即使一个索引查找失败,Cypher查询也会返回零行。我希望在丢失的节点上得到n或m中的空等价物。然而,没有运气


请说明我做错了什么,以及减少往返的任何解决办法。非常感谢

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

并使用

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

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

谢谢。这将为我提供节点,但无法帮助我确定丢失了哪些节点。例如,我将无法知道n或m是否缺失。其次,如果我有两个不同的索引呢?您可以找出客户端缺少哪些名称。你所说的不同指数是什么意思?你能详细说明你的问题吗?不同的索引可以代表不同类型的节点。下面是一个例子。m=node:MyFriendIndex(NAME=“XYZ”)或m=node:MyClassmateIndex(NAME=“XYZ”)等。我认为某人的
朋友和
同学之间的关系在图形结构中表现得更好。我不知道有什么好方法可以合并索引查询,其中一些查询可能会导致空集。
{'query':'Name:(ABC XYZ)'}