Генерация графиков в Neo4j для вычислений GDS
Я работаю над файлом CSV, который имеет структуру, подобную:
aId, Amount, bId
int, float, int
Здесь aId и bId имеют ограничения на узлы A и B соответственно. При первоначальной загрузке узлов и отношений,
LOAD CSV with headers FROM 'file:///abc.csv' as row
MERGE (a: A {aid: toInteger(row.aID)})
MERGE (b: B {bid: toInteger(row.bID)})
CREATE (a)-[:HAS_SENT {amt: toFloat(row.Amount)}]->(b)
Есть 1490 ярлыков и 1299 отношений.
Теперь я хочу использовать разные библиотеки Graph Data Science для выполнения различных вычислений с файлом. Чтобы построить график для этого, я рассчитал то же самое, используя
CALL gds.graph.create.estimate(['A'],['HAS_SENT'])
который вернул 851 узел и 1299 отношений.
Однако, когда я попытался создать график,
CALL gds.graph.create('mySampleGraph',['A'],['HAS_SENT'])
, он вернул то же количество узлов, но с нулевым соотношением.
Что я упустил, и как я могу получить правильные сопоставления?
1 ответ
Судя по вашему запросу на импорт, ваши отношения существуют только между узлами A и B. Нет отношений между узлами с меткой A. Как правило, загружаются только отношения, которые имеют как исходный узел, так и целевой узел, описанные в части "Проекция узла". В вашем случае нет отношений, которые имеют как исходный, так и целевой узел с меткой A. Если вы загружаете обе метки A и B, то GDS должен загрузить все отношения.
CALL gds.graph.create('mySampleGraph',['A', 'B'],['HAS_SENT'])
Кстати... есть ли какая-то конкретная причина иметь два ярлыка вместо одного?