Итак, я работаю с данными электронной почты. Мне было предложено добавить свойство количества раз, замеченное для отношений между узлами, и второе требование добавить первое увиденное и последнее увиденное к каждому отношению и каждому узлу, кроме получателя (данные являются внешними по отношению к внутренним, поэтому получателю не требуется первый или последний увиденный).
Итак, я начал работать со следующим импортом. Это выглядит нормально для NO ATTACHMENT OR LINK
, если отправитель находится в первом импорте, но если отправитель не в первом импорте, часть first and last seen
испорчена, потому что начальный набор находится в первом импорте.
// NO ATTACHMENT OR LINK - FIRST IMPORT
LOAD CSV WITH HEADERS FROM ("file:///sessions/new_neo_test_1.csv") AS row
MERGE (a:Sender { name: row.From, domain: row.Sender_Sub_Fld, last_seen: datetime(row.DateTime) })
SET a.first_seen = coalesce(a.last_seen)
MERGE (b:Recipient { name: row.To, last_seen: datetime(row.DateTime) })
SET b.first_seen = coalesce(a.last_seen)
WITH a,b,row
WHERE row.Url = "false" AND row.FileHash = "false"
CALL apoc.merge.relationship(a, row.Outcome2, {}, {last_seen: datetime(row.DateTime)}, b, {}) YIELD rel as rel1
SET rel1.first_seen = coalesce(rel1.last_seen)
SET rel1.times_seen = coalesce(rel1.times_seen, 0) + 1
RETURN a,b
// NO ATTACHMENT OR LINK - REST OF IMPORTS
LOAD CSV WITH HEADERS FROM ("file:///sessions/new_neo_test_2.csv") AS row
WITH row, datetime(row.DateTime) AS dt
MERGE (a:Sender {name: row.From, domain: row.Sender_Sub_Fld})
SET a.last_seen = dt
MERGE (b:Recipient {name: row.To})
SET b.last_seen = dt
WITH a, b, row, dt
WHERE row.Url = "false" AND row.FileHash = "false"
CALL apoc.merge.relationship(a, row.Outcome2, {}, {}, b) YIELD rel
SET rel.last_seen = dt
SET rel.times_seen = coalesce(rel.times_seen, 0) + 1
RETURN a, b
В любом случае, для способа импорта этих данных есть лучший способ сделать это, чтобы мне не пришлось разбивать данные на первоначальный импорт и последующий импорт с другим оператором импорта. , И как мне обращаться со свойствами first seen
и last seen
, если я go об этом так.