2011-11-14 7 views
1

내가 태그 개념을 사용하여, 다른 유사 검색 요소에 대한 쿼리를했습니다 :Neo4j 사이퍼 쿼리 성능

START similar=node:TYPE_INDEX("type1"), to=node(20325) 
match similar-[:TAGGED]->tag<-[:TAGGED]-to 
return distinct similar, count(tag) 
order by count(tag) DESC 

"유사한"type 속성을 사용하여 색인 노드의 집합입니다. "받는 사람"은 "유사한"노드와 비교해야하는 노드입니다.

유사한 쿼리 자체가 500 노드를 반환하고 TAGGED 관계의 수는 3000입니다. 태그 노드는 500입니다. 내 컴퓨터에서이 쿼리는 50 초가 걸립니다.

order by 절 및/또는 count 절을 제거하면 성능이 향상되지 않습니다.

+0

우연히 테스트 데이터베이스 또는 데이터 생성기를 제공해 주시겠습니까? 그것을보고 프로파일 링하고 싶습니다. –

답변

0

사용중인 Neo4j 버전은 무엇입니까? 어떻게 쿼리 (REST, 웹 콘솔, 쉘, 자바)를 실행합니까? 이것은 세션이나 두 번째 또는 세 번째에서 첫 번째 실행입니까?

일치 조항을 다시 써서 to이 먼저 오도록 할 수 있습니까? 차이를 만들어서는 안되지만 재미있는 일입니다.

match to-[:TAGGED]->tag<-[:TAGGED]-similar

고마워요.

+0

Java를 사용하고 있습니다. 버전은 1.5M02이며, 세션에서 실행되는 프리스트가 아닙니다. 차이점없이 "비슷한"것으로 "to"를 뒤집어 썼습니다. –