2017-12-08 1 views
0

서로 다른 관계와 노드 목록을 가진 그래프가 있습니다. 이 목록의 노드 사이에 "E"유형의 관계를 알고 싶습니다.neo4j : 목록에있는 노드 간의 관계 유형에 대한 빠른 검색

는 현재 우리는 다음과 같이 수행

With ["0","1","2","10"] as list1 
MATCH p=(x)-[:E]-(y) 
WHERE (x.frag IN list1) AND (y.frag IN list1) 
RETURN p  

그것은 몇 노드 작동하지만 그것도 단지 100 노드가 매우 느려집니다.

예를 들어 APOC로이 결과를 더 빨리 얻을 수있는 방법이 있습니까?

감사합니다.

+1

는 I는 먼저하면 정상적으로 생각한다. 'frag'가 해당 노드 레이블에 대한 색인이 생성되었는지 확인하십시오. 즉,'CREATE INDEX ON : SomeLabel (frag)'을 실행하십시오. –

+0

안녕. 당신의 대답에 대해 Gabor에게 감사드립니다. "조각이 해당 노드 레이블에 대해 색인이 생성되도록하십시오"라고 말하면, CSV 파일의 경우 첫 번째 줄에 "frag : ID"가 있어야 함을 의미합니다. 제발 그걸 확인해 줄 수 있니? –

답변

1

레이블을 사용하고 매개 변수를 인덱싱하면 성능이 크게 향상 될 수 있습니다.

MATCH를 p = (X : NODE_LABELX) - [: E] - (Y : NODE_LABELY)

가 또한 확인 : 1. 특정 노드 라벨 2 https://graphaware.com/neo4j/2015/01/16/neo4j-graph-model-design-labels-versus-indexed-properties.html

+0

안녕하세요, 귀하의 정보보다. A가 레이블을 추가하고 더 빠르지 만 150 노드 목록에서 여전히 매우 느립니다! 해결책이 있습니까? –

+0

사용중인 속성에도 색인을 생성 했습니까? 그래프에는 몇 개의 노드와 관계가 있습니까? –