2016-06-12 5 views
0

내 목표는 주어진 위도와 경도로 가장 가까운 노드를 찾는 것입니다. Simple Point Layer를 만들었고 findClosestGeometies 쿼리를 사용하고 있지만 응답 시간은 상대적으로 작은 데이터베이스에서도 다소 불만족 스럽습니다. 작업 아래 내 계층을 생성하기 위해 실행할 : 나는 레이어와 실행 샘플 쿼리에 대한 ~ 70K 노드를 추가 간단한 자바 프로그램을 사용하여Neo4j Spatial에서 가장 가까운 노드를 찾는 성능 향상

다음
:POST /db/data/ext/SpatialPlugin/graphdb/addSimplePointLayer { 
    "layer" : "layerName", 
    "lat" : "NODE_LAT", 
    "lon" : "NODE_LON" 
} 

:POST /db/data/index/node {"name":"layerName", "config": 
    {"provider":"spatial", "geometry_type":"point", "lat":"NODE_LAT", "lon":"NODE_LON"} 
} 

match(n:WAY_NODE) set n.id=ID(n); 

: 제대로 작동하지만, 각 응답이 소요

:POST db/data/ext/SpatialPlugin/graphdb/findClosestGeometries { 
    "pointX" : 18.5640344020454, 
    "pointY" : 54.4441138296926, 
    "distanceInKm" : 1.0, 
    "layer" : "layerName" 
} 

더 많거나 8 초 미만. 속도를 높일 수있는 방법이 있습니까? 어떤 아이디어를 사용해야합니까?

답변

0

나는뿐만 아니라 제공 distance 매개 변수 내에서 많은 장소가있는 경우이 오히려 성능 저하를 관찰했습니다.

제 해결 방법은 약간 거리 값으로 시작하는 것입니다. 해당 범위 내에 결과가 없으면이를 증가시키고 다시 시도하십시오.