그래프에 노드가있는 활동 노드 목록이 있습니다. 가장 최근의 count
활동을 반환하기 쉽도록 활동이 연대순으로 진행됩니다. 2.0.1과 같은 이전 버전의Neo4j 2.1.2 : 노드의 긴 목록에 액세스하는 올바른 방법
(:node)-[:ACTIVITY]->(:activity)-[:ACTIVITY]->(:activity)...
, 나는 (이 트랜잭션 REST 엔드 포인트를 통해 모든 사이퍼이다) 다음을 수행 할 수 있습니다 : 그래프는 다음과 같습니다
MATCH (n:node)-[:ACTIVITY*]->(a:activity)
WITH DISTINCT a SKIP { start } LIMIT { count }
start
및 count
목록에서 어떤 활동을 반환할지 결정하는 매개 변수입니다. Neo4j 2.1.2에서는 CPU가 100 %로 급상승하고 강제로 멈출 때까지 Neo4j가 정지합니다. 그래서 쿼리에 제한을 두려고했지만 약 50보다 큰 값은 반환되지 않습니다.
이 쿼리는 1 개 활동 노드 반환이 쿼리는 100 %의 CPU를 쐐기
MATCH (n:node)-[:ACTIVITY*0..10]->(a:activity)
RETURN a
을 결코 반환 :이 때문에
이MATCH (n:node)-[:ACTIVITY*0..100]->(a:activity)
RETURN a
, 왜 두 번째 쿼리 하나 개의 활동 노드 만 돌아 오지 않을거야? 긴 노드 목록을 쿼리하는 올바른 방법은 무엇입니까?
:
그렇지 않으면 여기에서 시작하는 예입니다, 당신을 위해 서버 확장 될 것이다 보기. – Bill
그래프에서 어딘가에 사이클이 생겼다는 생각이 든다. 비록이 특정 쿼리에 대한 경로를 왜 지나치는지 이해할 수는 없지만 말이다. 불행히도 정확히 무슨 일이 일어나고 있는지 파악하기 위해 쿼리를 실행하려고 할 때마다 쿼리가 중단되기 때문에 정확하게 어디에 있는지 알 수 없습니다. – Bill
샘플 데이터베이스를 살펴 보겠습니다. – mayr