다른 노드와 주어진 관계 유형이없는 db의 모든 노드를 선택하려고합니다.특정 유형의 관계가없는 노드 선택
다음은 내 db 구조입니다. 이벤트 노드를 게시하는 사용자 노드가 있습니다. 게시 관계는보다 구체적이며 다양한 유형의 관계가 있습니다 (예 : type1
및 type2
).
type1
이벤트가있는 모든 사용자 노드를 신속하게 선택할 수는 있지만 이벤트가있는 개의 관계가 없습니다.
START u = node:users("*:*")
MATCH (ev1)<-[r1:type1]-(u)-[r2?:type2]->(ev2)
WHERE r2 IS NULL
RETURN u
문제는 R2는 선택의 관계입니다 :
여기에 내가 지금 사용하고 쿼리입니다. 이것은 위의 쿼리를 아주 느리게 만들어서 neo4j 문서가 말하는 것을 확인합니다.
이 쿼리의 속도를 향상 시키려면 어떻게해야합니까? 성능을 향상시키기 위해 데이터를 더 잘 모델링 할 수 있습니까?
감사합니다. 알렉스
의 중복 가능성 [사이퍼가 : 특정 사용자가 아직 평가하지 않은 영화를 찾기] (http://stackoverflow.com/questions/19543957/cypher-finding-movies-that-havent-been- 특정 사용자별로 평가 됨) –
@StefanArmbruster 내가 추천 한 질문에서 대답을 사용했으며 쿼리 응답 유형이 50 % 증가했습니다. 여기에 내가 사용한 검색어가 있습니다 : start u = node : users ('* : *') 일치 (u) - [: type1] ->() 여기서 (u) - [: type2] ->() return count (distinct (u)) –
@StefanArmbruster 그러나 이제 어디서 관계/노드에 대한 참조를 첨부 할 수 없는지 알았습니다. 예. '... (u) - [r2 : type2] -> (ev2) ...'이 오류를 발생시킵니다 : 알 수없는 식별자 'ev2'. 알 수없는 식별자'r2'. 어떤 해결책? –