如果Neo4j中的一个条件失败,则查询多个索引不起作用

如果Neo4j中的一个条件失败,则查询多个索引不起作用,neo4j,cypher,Neo4j,Cypher,我试图在所有索引中搜索一个关键字。我的图形数据库中有 以下是查询: start n=node:Users(Name="Hello"), m=node:Location(LocationName="Hello") return n,m 我正在获取节点,如果关键字“Hello”在两个索引(用户和位置)中都存在,并且如果关键字Hello在任何一个索引中都不存在,我不会得到任何结果 请告诉我如何修改此密码查询,以便在任何索引键(Name或LocationName)中出现“Hello”时得到结果。在2

我试图在所有索引中搜索一个关键字。我的图形数据库中有

以下是查询:

start n=node:Users(Name="Hello"), 
m=node:Location(LocationName="Hello")
return n,m
我正在获取节点,如果关键字“Hello”在两个索引(用户和位置)中都存在,并且如果关键字
Hello
在任何一个索引中都不存在,我不会得到任何结果


请告诉我如何修改此密码查询,以便在任何索引键(Name或LocationName)中出现“Hello”时得到结果。

在2.0中,您可以使用UNION并有两个单独的查询,如下所示:

start n=node:Users(Name="Hello")
return n
UNION
start n=node:Location(LocationName="Hello")
return n;
您编写查询的方式的问题是,它计算
n
m
之间成对的笛卡尔积的方式,因此如果未找到
n
m
,则不会找到任何结果。如果找到一个
n
,找到两个
m
s,那么您将得到两个结果(重复
n
)。类似于SQL中FROM子句的工作方式。如果您有一个名为
empty
的空表,并且您确实
从x中选择*empty则将得到0个结果,除非执行某种外部联接


不幸的是,在1.9中实现这一点有些困难。我已经尝试了很多迭代,比如用collect(n)作为n,等等,但不管怎样,在某一点上它归结为笛卡尔积。

在解释上有点困难,你能发布一些输入/输出示例吗?您只是在寻找
操作符吗?假设我有两种类型的节点,即用户和位置。假设我有两种类型的节点,即用户和位置。我在这些节点上创建了两个索引,即Users(Key是Name)和Location(Key是LocationName)。现在我想对这些索引进行通配符搜索。单词是“Hello”。如果假设Hello关键字出现在索引用户(键“Name”)中,而不在索引位置(键“LocationName”),则查询不会返回任何节点,尽管它应该返回所有“n”个节点。有人能帮我吗。