Я новичок в neo4j.Я рассмотрел обнаружение сообщества на примере: play data_science с использованием отношений персонажей Game of Thrones.
В этом примере есть только один тип узла (Персонаж), и обнаружение сообщества выполняется с использованием распространения меток
CALL algo.labelPropagation(
'MATCH (c:Character) RETURN id(c) as id',
'MATCH (c:Character)-[rel]->(c2) RETURN id(c) as source, id(c2) as target, SUM(rel.weight) as weight',
'OUTGOING',
{graph:'cypher', partitionProperty: 'community'})
Можно ли выполнить обнаружение сообщества на графике, имеющем 2 типа узлов (скажем, «Персонаж» и «Место», где нам нужно сообщество символов и где символы связаны косвенно через места, которые у них есть)посетил)?
Я пробовал следующие запросы:
CALL algo.labelPropagation(
'MATCH (c:Character) RETURN id(c) as id',
'MATCH (c:Character)-[*1..2]->(p:Character) RETURN id(c) as source, id(p) as target',
'OUTGOING',
{graph:'cypher', partitionProperty: 'community'})
Он создает сообщества персонажей, но не так, как я ожидал, основываясь на просмотре графика с использованием
match (c:Character)-[r]->(l:Location) return *
Это правильный подход, которому нужно следовать?
Спасибо