2017-11-13 1 views
1

나는 프로젝트에 대해 neo4j를 평가하고 있습니다. 전반적으로 내 필요를 상당히 잘 맞는 것처럼 보이지만 확실하지 않은 요구 사항이 하나 있습니다.관계 붕괴

나는 시간이 지남에 따라 쇠퇴하는 두 노드 사이의 관계를 생성 할 수 있어야합니다.

neo4j가 그런 것을 지원합니까? 아니면 이것을하는 교활한 방법을 아는 사람이 있습니까?

감사

+0

나는 Neo4j 그런 일을 지원합니다 생각하지 않습니다. 본질적으로 관계에 TTL 값 (예 : 2 일)을 지정하고 싶습니까? –

+1

정확하지 않습니다. 점진적으로 붕괴해야합니다. 타임 스탬프와의 관계를 만든 다음이 라인을 따라 함수와 같은 것을 만들 수도 있습니다 : score = 1/(now() - stored_timestamp). 시간이지나면서 "힘"을 잃는 관계를 생각해보십시오. 결과 관계의 강도에 따라 정렬 된 연결 노드를 나중에 반환하려고합니다. –

답변

1

당신은 그들의 저장 타임 스탬프에 의해 내림차순으로 관계를 정렬 할 수 있습니다, 먼저 "신선한"관계를 얻으려면. 예를 들어

:

MATCH (f:Foo {id: 123})-[b:BAR]->() 
RETURN b 
ORDER BY b.stored_timestamp DESC; 
+0

나는''RETURN f ORDER BY 1/timestamp() - b.stored_timestamp DESC'의 줄을 따라 뭔가 더 필요할 것이다. –

+0

당신이 실제로'1/(timestamp() - b.stored_timestamp)'라고 가정하니? 이 값은 오래된'stored_timestamp' 값보다 작을 것이므로,'ORDER BY ... DESC' 절은 가장 최근의'stored_timestamp' 값을 먼저 정렬 할 것입니다. 'ORDER BY b.stored_timestamp DESC'를 사용하면 같은 효과를 얻을 수 있습니다. – cybersam