修正Neo4j中不一致的Cypher结果

修正Neo4j中不一致的Cypher结果,neo4j,cypher,Neo4j,Cypher,我用自己制作的Neo4j数据库(版本2.1.0-M01)得到了一些奇怪的结果。我有一个具有以下关系的图表: Node[211854]{name : "dst"} <-[:hasrel]- Node[211823]{name : "src"} 但是,以下查询不返回任何内容: START n=node(211823) MATCH (m)<-[r]-(n) RETURN m,r,n START n=node(211823)MATCH(m)使用节点id不是一个好主意,您可以使用节点上的属

我用自己制作的Neo4j数据库(版本2.1.0-M01)得到了一些奇怪的结果。我有一个具有以下关系的图表:

Node[211854]{name : "dst"} <-[:hasrel]- Node[211823]{name : "src"}
但是,以下查询不返回任何内容:

START n=node(211823) MATCH (m)<-[r]-(n) RETURN m,r,n

START n=node(211823)MATCH(m)使用节点id不是一个好主意,您可以使用节点上的属性来查询它们

例如:

MATCH (m)<-[r]-(n {name: "src"}) RETURN m,r,n;

MATCH(m)您必须反转关系方向。当您正在查找节点211823的传入关系时,这不是其中之一。这是一种外向的关系

还请将数据库更新到当前版本:2.1.2


也许你应该给你的节点和关系起一个更具描述性的名字,这样当你颠倒一个域的概念时,你会更容易发现。

第一个问题很好!感谢您首先阅读帮助文件。不确定这是否与您的问题有关,但您的问题中存在差异(键入?):第一行代码的节点id为
211845
,您的问题的其余部分是
211854
。我们在集群环境中的一个Neo4J db中发现了完全相同的问题,其中每个节点在集群中报告不一致的结果,并且在给定节点上也出现了与上述相同的差异。重新启动Neo4J服务器神奇地解决了这一问题,但让我们非常担心Neo4J在面对数据库不断更新时的可靠性。我以为这应该是交易性的。你确定方向是问题所在吗?如果路径是
(211854),那么原始海报的查询就可以了。我们在集群环境中的一个Neo4J 2.1.5 db中注意到了完全相同的问题,其中每个节点在集群中报告不一致的结果,并且在给定节点上也存在上述相同的差异。重新启动Neo4J服务器神奇地解决了这一问题,但让我们非常担心Neo4J在面对数据库不断更新时的可靠性。我认为它应该是事务性的。我的实际数据库和查询使用名称。不幸的是,上面的查询确实返回了我所期望的结果。
START n=node(211823) MATCH (m)<-[r]-(n) RETURN m,r,n
MATCH (m)<-[r]-(n {name: "src"}) RETURN m,r,n;
START n=node(211823) MATCH (m)-[r]->(n) RETURN m,r,n