Я пытаюсь создать систему графиков для извлечения ленты новостей пользователя.Neo4j, Cypher: Graphity System
A Пользователь подключен к подруге с помощью связи Ego
, в которой записано ID
, сделанные пользователем. Но я обнаружил, что Neo4j повторно использует идентификатор узла, если этот узел удален.
Итак, есть ли другой способ создания системы графиков и отслеживать отношения Ego
, не сохраняя в нем user id
. Поскольку создание узла для Ego
вместо relationship
теряет легкость обхода ленты новостей.
Например это запрос к неследовать пользователю
MATCH (u:User), (f:User)
WHERE ID(u)=4084079 AND ID(f)=4105710
MATCH (x1)-[r1:Ego{user_id:ID(u)}]->(f)-[r2:Ego{user_id:ID(u)}]->(x2)
FOREACH (s IN CASE WHEN r1 IS NULL THEN [] ELSE [r1] END |
FOREACH (t IN CASE WHEN r2 IS NULL THEN [] ELSE [r2] END |
CREATE (x1)-[:Ego{user_id:ID(u)}]->(x2)
DELETE s, t
)
)
WITH u, f
MATCH (u)-[r:Follow]->(f)
DELETE r
Хм, у меня есть ваше мнение. Но проблема заключается в том, что использование идентификатора в качестве свойств приводит к неожиданному увеличению использования ОЗУ? Если это не вызвано этим, я могу уйти от него, так как пользователи никогда не будут удалены. На самом деле этот вопрос является расширением http://stackoverflow.com/questions/26344479/neo4j-server-consuming-ram-excessively/26345908?noredirect=1#comment41413719_26345908 http://stackoverflow.com/questions/ 26189351/neo4j-server-clear-the-cache-in-ram и причина по-прежнему не решена для меня .. –