Cypher查询检索索引关系和连接节点

时间:2013-06-05 20:30:56

标签: neo4j cypher

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

我认为这很简单:

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行

我期待一对一,但显然我做错了什么。谁能告诉我什么?

2 个答案:

答案 0 :(得分:0)

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

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

似乎效率低下。任何人都可以提供的任何见解将不胜感激。

答案 1 :(得分:0)

两者的回报有什么不同?

如果我没记错的话,你不能在cypher中做这样的查询,而且至少在1.8.2和1.9上它似乎都失败了。

我认为你查询实际上做的是对所有节点进行全面扫描,然后返回所有对。我设置了small sample database。如果您单击查看结果并查看解释计划,您将看到它正在做一些奇怪的事情。您可能想要提出Neo4j的错误问题。

尝试这样的事情:

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