Я вычисляю индекс подобия Жакара для категории узлов в графе, используя алгоритм algo.similarity.jaccard
из библиотеки алгоритма графа Neo4j.После вычисления сходства по Джакарду и указания отсечки я сохраняю метрику в отношении между узлами (это особенность алгоритма).Я пытаюсь увидеть изменение графика с течением времени, когда получаю новые данные для добавления в график (я буду перезагружать свой CSV-файл новыми данными и объединять их в новые узлы / отношения).
ПроблемаЯ предвижу, что, как только я снова запустю алгоритм Jaccard с обновленным графиком, он создаст дублирующиеся отношения.Это пример документации Neo4j кода, который я использую:
MATCH (p:Person)-[:LIKES]->(cuisine)
WITH {item:id(p), categories: collect(id(cuisine))} as userData
WITH collect(userData) as data
CALL algo.similarity.jaccard(data, {topK: 1, similarityCutoff: 0.1, write:true})
YIELD nodes, similarityPairs, write, writeRelationshipType, writeProperty, min, max, mean, stdDev, p25, p50, p75, p90, p95, p99, p999, p100
RETURN nodes, similarityPairs, write, writeRelationshipType, writeProperty, min, max, mean, p95
Есть ли способ указать, что я не хочу иметь дублирующиеся отношения при каждом запуске этого кода с обновленным графиком?Вручную, я бы использовал MERGE вместо CREATE, но, видя, что это алгоритм из библиотеки, я не уверен, как это сделать.К вашему сведению, у меня не будет возможности добавлять изменения в библиотечный плагин, и, похоже, нет способа сохранить отношения под другой меткой, такой как SIMILARITY2.