Neo4j 奇怪的行为;缺陷

Neo4j 奇怪的行为;缺陷,neo4j,cypher,Neo4j,Cypher,我正在使用neo4j-2.0.0m3并运行一个相当简单的查询。但是我得到的结果对我来说毫无意义。这是我的查询数据模型: 排名靠前的是“供应商”,排名靠后的是“工厂” 询问 START s=node:__types__(className='Supplier'),f=node:__types__(className='Factory') MATCH (s)-[d:delivers]->(f) RETURN s.name,d.price, f.name; 仅返回5行(错误,应该有9项):

我正在使用neo4j-2.0.0m3并运行一个相当简单的查询。但是我得到的结果对我来说毫无意义。这是我的查询数据模型:

排名靠前的是“供应商”,排名靠后的是“工厂”

询问

START s=node:__types__(className='Supplier'),f=node:__types__(className='Factory')
MATCH (s)-[d:delivers]->(f) 
RETURN s.name,d.price, f.name;
仅返回5行(错误,应该有9项):

现在奇怪的是,如果我运行相同的查询,但不将关系绑定到变量,我会得到7行

START s=node:__types__(className='Supplier'),f=node:__types__(className='Factory')
MATCH (s)-[delivers]->(f) 
RETURN s.name, f.name;

7 rows
s.name      f.name
"Amazon"    "Köln"
"eBay"      "Köln"
"eBay"      "Frankfurt"
"Amazon"    "Frankfurt"
"eBay"      "Mannheim"
"Amazon"    "Mannheim"
"Conrad"    "Stuttgart"
我发现获得正确行数的唯一方法是不使用start子句。
出什么问题了?

听起来您的索引中可能缺少一些条目。你能试着只做start/return子句而不做任何匹配吗?

好主意。如果没有匹配,我会得到12行,这似乎是正确的(我从你的一篇文章中了解到的笛卡尔积:),你可以一次只尝试一个索引,以确保它正是每个索引查询所期望的。你能让它在控制台中重现吗?如果是这样,可能是时候创建一个github问题了,或者添加到现有问题上。我们已经为match准备了一个,它没有返回它应该与开始节点集一起返回的所有结果<代码>开始s=节点:\类型\返回s.name(className='Supplier');返回3行。查询时间为41ms s.name“Amazon”“eBay”“Conrad”START f=node:\uuuuu types\uuuuuu(className='Factory')返回f.name;f、 命名为“Köln”“法兰克福”“曼海姆”“斯图加特”我想索引似乎在工作。是的:(听起来可能是一个类似的问题。我将提交一个新问题。特别是因为将关系绑定到变量时的行为是奇怪的。您有没有建议在此之前我应该使用哪个版本,1.9或2.0.0 M2?谢谢您的帮助。
START s=node:__types__(className='Supplier'),f=node:__types__(className='Factory')
MATCH (s)-[delivers]->(f) 
RETURN s.name, f.name;

7 rows
s.name      f.name
"Amazon"    "Köln"
"eBay"      "Köln"
"eBay"      "Frankfurt"
"Amazon"    "Frankfurt"
"eBay"      "Mannheim"
"Amazon"    "Mannheim"
"Conrad"    "Stuttgart"