0
Titan에서 지형 공간 중심의 인덱스를 만들 수 있습니까?타이탄의 지형 공간 중심 좌표가 가능합니까?
가이드 https://github.com/thinkaurelius/titan/wiki/Vertex-Centric-Indices의 패턴을 따라 렉스 마스터 콘솔에서 패턴 만들기를 시도했지만 실패했습니다.
geo_location=g.makeKey("geo_location").dataType(Geoshape.class).make();
g.makeLabel("edge_label").sortKey(geo).signature(geo).make();
==>An error occurred while processing the script for language [groovy].
All transactions across all graphs in the session have been concluded with failure:
java.util.concurrent.ExecutionException:
javax.script.ScriptException:
javax.script.ScriptException:
java.lang.IllegalArgumentException:
Key must have comparable data type to be used as sort key: geo_location
나는 정기적으로 지리 공간 색인을 작성하려고했지만, 문제의 지리 공간 속성 가장자리의 높은 숫자로 정점을 조회 할 때이 낮은 성능을 제공합니다.
나는 다음을 수행하여 원 내의 모든 에지를 검색 할 수 있다고 (바람직하게는 (x, y)로부터 거리별로 정렬 됨) 상상한다. 타이탄 서버 0.4.4를 사용
x = 0
y = 0
radius = 10
circle = Geoshape.circle(current_position_x, current_position_y, nearby_radius)
some_vertex_with_centric_index.outE('edge_label').has(location, WITHIN, circle)
이는 카산드라 2.0.3 + 탄성 검색
이것은 문제를 해결할 수 있지만 에지 번호가 매우 커질 수 있으므로 많은 수의 위치에서 가능하지 않습니다 - 위치 정점은^2입니다. –
위치를 색인/정렬하는 방법은 다양합니다. 이 작업을 수행하는 한 가지 방법은 location 속성에 대해 각 차원에 하나씩 두 개의 정수 인덱스를 유지하는 것입니다. Geoshape를 사용하여 기하학적 객체 내의 점을 검색하려면 다음을 수행 할 수 있습니다. 1. Geoshape 바운딩 박스 내의 점 목록을 검색합니다. 2. geoshape 바운딩 상자 안의 geoshape 바깥에있는 가장 큰 바운딩 상자 내의 점 목록을 검색합니다. 3. 1 - 점 2 점 4. 테두리 상자가 "작을 때까지 반복하여 반복하십시오. 5. 포인트가 도형 안에 있는지 확인하고 지오 센스 중심으로부터의 거리별로 정렬하십시오. –