如果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”个节点。有人能帮我吗。