У меня есть график с книгами, главами и персонажами. Книги содержат главы, а главы - символы. Я хочу написать запрос, показывающий мне 10 персонажей, которые появляются в большинстве книг, вместе с книгами, которые они появляются.Запрос, чтобы показать отношения второй степени (косвенные) в Neo4j
Предположим, что моя проблема немного проще, я могу легко написать запрос, показывающий мне 10 символов, которые появляются в большинстве глав:
MATCH (chapter)-[:MENTIONS]->(character)
RETURN character,
COLLECT(chapter) as chapters
ORDER BY SIZE(chapters) DESC
LIMIT 10
Этот запрос выше работает нормально. Теперь я пытаюсь написать подобный запрос, который показывает книги, а не главы:
MATCH (book)-[:CONTAINS]->(chapter)-[:MENTIONS]->(character)
RETURN character,
COLLECT(book) as books
ORDER BY SIZE(books) DESC
LIMIT 10
Этот запрос кажется, работает хорошо, но это только сообщает кучу персонажей книг и без каких-либо отношений, потому что нет никакого прямого отношения между книгами и персонажами. Может Neo4j вывести эти косвенные связи и показать их в запросе без меня, чтобы изменить данные и вручную вставить для каждого шаблона
(book)-[:CONTAINS]->(chapter)-[:MENTIONS]->(character)
новые отношения
(book)-[:TALKS_ABOUT]->(character)
?
Какие отношения вам нужны в результате запроса? –
Я немного смущен ... результаты вашего запроса должны показать персонаж и коллекцию книг, которые они появились в порядке заказанного количества книг, в которые они появились (хотя вам может понадобиться книга COLLECT (DISTINCT)) как книги', чтобы избавиться от дубликатов в ваших коллекциях). Вы говорите, что он сообщает персонажи и книги без каких-либо отношений, но явно есть косвенные отношения, о чем свидетельствует ваш матч. Что в результатах не работает для вас? – InverseFalcon
@stdob: Мне нужен тип отношений, который не находится в модели, и что я бы хотел избежать добавления вручную, как я сказал в примере в последнем абзаце. Отношения должны показывать связь между персонажами и книгами. – st1led