2013-08-17 3 views
0

Следующий запрос возвращает 8 команд, которые являются правильными.Разница в поведении между двумя запросами cypher

Запрос

START league=node:League(name='September League') 
MATCH (teams)-[:CONTESTED_IN]->league 
RETURN teams.name 

Результат

teams.name 
Kakatiya Kings 
Broncos 
Dunwoody Blues 
DOE Spikers 
Atlanta Spikers 
Wild Claws 
Alpharetta One 
Camden Rockers 

Однако, когда я добавляю уровень в качестве другого исходного узла, хотя и не использовать его в любом месте, он возвращается каждая команда повторяется дважды. Любая идея, почему разница в поведении

Запрос

START league=node:League(name='September League'), level=node:Level(name='Quarterfinal') 
MATCH (teams)-[:CONTESTED_IN]->league 
RETURN teams.name 

Результат

teams.name 
Kakatiya Kings 
Broncos 
Dunwoody Blues 
DOE Spikers 
Atlanta Spikers 
Wild Claws 
Alpharetta One 
Camden Rockers 
Kakatiya Kings 
Broncos 
Dunwoody Blues 
DOE Spikers 
Atlanta Spikers 
Wild Claws 
Alpharetta One 
Camden Rockers 

ответ

0

Какую версию вы используете? Попытка сгенерировать ошибочный результат в http://console.neo4j.org/r/6lvxd8 не дает мне. Если вы можете воссоздать его в консоли, напишите о проблеме!

+0

Я бегу этот запрос из neoclipse против 1.8.2 версии Neo4j –

1

Поскольку нет связи между и level, то, что вы получаете, является перекрестным результатом результатов, то есть team.name на узел, проиндексированный в узле: Уровень. Таким образом, результат верен, если в индексе найдены два узла.

Если вы измените запрос

RETURN teams.name, level 

вы можете проверить это. Чтобы получить уникальные результаты, добавьте distinct:

RETURN distinct(teams.name) 
Смежные вопросы