Мне нужно найти соединения между всеми узлами (с меткой «Hashtag»), подключенными к основному пользовательскому узлу.Самый эффективный способ найти соединения между узлами в Cypher/Neo4J?
До сих пор я придумал такое решение, но мне кажется немного неэффективным, потому что я дважды пересекаю график, чтобы сначала найти c1, а затем c2.
У кого-нибудь есть идеи?
MATCH (u:User{uid:"777"}), (c1:Hashtag), (c2:Hashtag),
c1-[:BY]->u, c2-[:BY]->u, c1-[rel:TO]->c2 RETURN rel,c1,c2;
(я работаю с Neo4j/Cypher 2,0)
, похоже, работает намного быстрее, спасибо! :) давайте подождем, что другие говорят немного ... отличная идея! –
, но одна проблема, тогда мы получаем узлы c2, которые не обязательно связаны с: BY пользователем ... и мне все они связаны с пользователем. так что, возможно, мы должны добавить ... (c2: Hashtag) - [: BY] -> u, но тогда это похоже на то, что указано выше ... –
Посмотрите, работает ли исправление. Добавлено - (u) – arijeet