Генерация графиков в 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'])

Кстати... есть ли какая-то конкретная причина иметь два ярлыка вместо одного?

Другие вопросы по тегам