Я пытаюсь запросить узлы через Cypher с определенным типом отношений.
Итак, есть два узла A (ID 1) и B (ID 2). Я использую Cypher Console в графическом интерфейсе администрирования.
Если я сделаю это: rel: 1
Я получаю результат двух отношений (идентификаторы 10 и 11) двух одинаковых узлов (идентификатор 3) (я знаю, что это плохо, но это данные). Если я посмотрю на отношения, там будет показано: Узел 1 Подобно Узлу 3 Узел 1 Подобно Узлу 3
Если я попробую это:
START n=node(*) MATCH n-[:SimilarTo]->b WHERE n.Name='A'
Получаю пустой результат !?
Итак, мой вопрос: почему я получаю этот пустой результат, хотя существуют две связи, которые имеют правильный начальный узел и правильные конечные узлы?
Я не понимаю этого.
Если у Вас есть предложения, пожалуйста, дайте мне знать ;)
Хорошо, я приведу другой пример ..
Я делаю следующий запрос:
START artist=node:artists('artistMbid:*')
MATCH artist-[:SimilarTo]->x-[:SimilarTo]->sim
WHERE artist.artistName! = 'Shining Fury'
RETURN artist.artistName, x.artistName, sim.artistName
И получим такой результат (правильный):
artist.artistName x.artistName sim.artistName
"Shining Fury" "Dragonsfire" "Holy Cross"
"Shining Fury" "Dragonsfire" "Holy Cross"
"Shining Fury" "Dragonsfire" "Lorenguard"
"Shining Fury" "Dragonsfire" "Lorenguard"
"Shining Fury" "Dragonsfire" "Shining Fury"
"Shining Fury" "Dragonsfire" "Shining Fury"
Если я это сделаю:
START artist=node:artists('artistMbid:*')
MATCH artist-[:SimilarTo]->x-[:SimilarTo]->y-[:SimilarTo]->sim
WHERE artist.artistName! = 'Shining Fury'
RETURN artist.artistName, x.artistName, y.artistName, sim.artistName
Я получаю это (неверно):
artist.artistName x.artistName y.artistName sim.artistName
"Shining Fury" "Dragonsfire" "Holy Cross" "Dragonsfire"
"Shining Fury" "Dragonsfire" "Holy Cross" "Ruffians"
"Shining Fury" "Dragonsfire" "Holy Cross" "Dragonsfire"
"Shining Fury" "Dragonsfire" "Holy Cross" "Ruffians"
"Shining Fury" "Dragonsfire" "Lorenguard" "Holy Cross"
"Shining Fury" "Dragonsfire" "Lorenguard" "Nightqueen"
"Shining Fury" "Dragonsfire" "Lorenguard" "Dragonsfire"
"Shining Fury" "Dragonsfire" "Lorenguard" "Holy Cross"
"Shining Fury" "Dragonsfire" "Lorenguard" "Nightqueen"
"Shining Fury" "Dragonsfire" "Lorenguard" "Dragonsfire"
Это неверно, потому что мне не хватает исполнителя "Shining Fury" под именем y.artistName, как будто я получил его на предыдущем шаге. Не могу найти свою ошибку!
Другое редактирование ..
Запрос 1
START artist=node:artists('artistMbid:*')
MATCH artist-[:SimilarTo]->x-[:SimilarTo]->sim
WHERE artist.artistName! = 'Shining Fury'
RETURN ID(artist), ID(x), ID(sim)
результат:
ID(artist) ID(x) ID(sim)
210292 209410 228580
210292 209410 228580
210292 209410 212568
210292 209410 212568
210292 209410 210292
210292 209410 210292
Query2:
START artist=node:artists('artistMbid:*')
MATCH artist-[:SimilarTo]->x-[:SimilarTo]->y-[:SimilarTo]->sim
WHERE artist.artistName! = 'Shining Fury'
RETURN ID(artist), ID(x), ID(y), ID(sim)
результат:
ID(artist) ID(x) ID(y) ID(sim)
210292 209410 228580 209410
210292 209410 228580 202357
210292 209410 228580 209410
210292 209410 228580 202357
210292 209410 212568 228580
210292 209410 212568 202279
210292 209410 212568 209410
210292 209410 212568 228580
210292 209410 212568 202279
210292 209410 212568 209410
WITH
между ними, чтобы разделить их. - person Michael Hunger   schedule 17.01.2013