Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 用于检索索引关系和联接节点的密码查询_Neo4j_Cypher - Fatal编程技术网

Neo4j 用于检索索引关系和联接节点的密码查询

Neo4j 用于检索索引关系和联接节点的密码查询,neo4j,cypher,Neo4j,Cypher,我试图检索未删除的关系,以及它们的源节点和目标节点 我想这很容易: START relationship=relationship:relationship_auto_index(deleted="false") MATCH (source)-[relationship]->(target) RETURN relationship, source, target; 但这将返回9600行 鉴于: START relationship = relationship:relationshi

我试图检索未删除的关系,以及它们的源节点和目标节点

我想这很容易:

START relationship=relationship:relationship_auto_index(deleted="false") 
MATCH (source)-[relationship]->(target) 
RETURN relationship, source, target;
但这将返回9600行

鉴于:

START relationship = relationship:relationship_auto_index(deleted="false") 
RETURN  relationship;
返回30行


我期待着一对一的比赛,但很明显我做错了什么。有人能告诉我什么吗?

奇怪的是,这得到了我想要的:

START source=node(*) 
MATCH source-[relationship]->target 
WHERE relationship.deleted = "false" 
RETURN source, relationship, target;

它似乎效率较低。任何人都能提供任何见解,我们将不胜感激。

两者返回的内容有什么不同

如果我没记错的话,你不能在cypher中进行这样的查询,至少在1.8.2和1.9两个版本中,我似乎也失败了

我认为您的查询实际上是对所有节点进行完整扫描,并返回所有对。我成立了一个公司。如果单击“查看结果”并查看解释计划,您将看到它在做一些奇怪的事情。您可能想向Neo4j提出一个bug问题

试着这样做:

START r=relationship(0) 
MATCH p=a-[r]->b 
RETURN Distinct(p)

在第一个查询返回子句中尝试使用distinct。发生了什么?下面是我尝试做的另一个例子:。我想获取特定关系的源节点和目标节点。出于某种原因,我两次得到相同的结果,只是顺序相反。这是因为关系本身不是定向的,所以从技术上讲,它们都是相互关联的?另外,如果要扫描所有节点,那么能够对关系进行索引又有什么意义呢?那么,在您的示例数据库中,你能解释一下我将如何获得“已知”关系以及源节点和目标节点吗?我同意你关于关系索引的评论。但我认为这可能只是一个密码问题。如果我使用本机javaapi或Gremlin,我可以得到您想要的。另一种选择是在路径上使用distinct。您是否尝试过更新到Neo4j 1.9或2.0-M03?这可能是1.8.2之后修复的错误。