Spring-Data-Neo4j で空間インデックスがどのように機能するかを理解するのを手伝ってもらえますか?
簡単なインデックスを作成しました:
@NodeEntity
class Junction {
@GraphId Long id;
@Indexed(indexType = IndexType.POINT, indexName = "Location") String wkt;
void setPosition(double longitude, double latitude) {
this.wkt = String.format("POINT(%f %f)",longitude, latitude).replace(",",".");
}
}
これは機能しているように見えます-位置を設定したジャンクションを永続化すると、空間インデックスに追加されたように見えます。(Neo4j Web コンソールから「match (m) return m」を実行すると、追加されたノードと一致する「id」プロパティを持つノードが空間ルートに追加されていることがわかります)。
ただし、リポジトリのdeleteで追加したノードを削除すると、空間インデックス ルートからノードが自動的に削除されません。
ノードを空間インデックスから削除するには、何か手動で行う必要がありますか?それとも、これは機能ですか?
追加されたジャンクションの削除前後の Neo4j データベースは次のようになります。
前:
Node[0]
Labels: [ReferenceNode]
Relationships
0 -[LAYER]-> 1
Properties: [[name, spatial_root]]
Node[1]
Labels: []
Relationships
1 -[RTREE_ROOT]-> 2
1 -[RTREE_METADATA]-> 3
0 -[LAYER]-> 1
Properties: [[layer, junctionLocations], [ctime, 1416295060307], [geomencoder, org.neo4j.gis.spatial.WKTGeometryEncoder], [layer_class, org.neo4j.gis.spatial.EditableLayerImpl], [geomencoder_config, wkt]]
Node[2]
Labels: []
Relationships
1 -[RTREE_ROOT]-> 2
2 -[RTREE_REFERENCE]-> 5
Properties: [[bbox, [100.0, 100.0, 100.0, 100.0]]]
Node[3]
Labels: []
Relationships
1 -[RTREE_METADATA]-> 3
Properties: [[maxNodeReferences, 100], [totalGeometryCount, 1]]
Node[4]
Labels: [Junction, _Junction]
Relationships
Properties: [[longitude, 100.0], [latitude, 100.0], [wkt, POINT(100.000000 100.000000)]]
Node[5]
Labels: []
Relationships
2 -[RTREE_REFERENCE]-> 5
Properties: [[wkt, POINT (100 100)], [id, 4], [gtype, 1], [bbox, [100.0, 100.0, 100.0, 100.0]]]
後:
Node[0]
Labels: [ReferenceNode]
Relationships
0 -[LAYER]-> 1
Properties: [[name, spatial_root]]
Node[1]
Labels: []
Relationships
1 -[RTREE_ROOT]-> 2
1 -[RTREE_METADATA]-> 3
0 -[LAYER]-> 1
Properties: [[layer, junctionLocations], [ctime, 1416295060307], [geomencoder, org.neo4j.gis.spatial.WKTGeometryEncoder], [layer_class, org.neo4j.gis.spatial.EditableLayerImpl], [geomencoder_config, wkt]]
Node[2]
Labels: []
Relationships
1 -[RTREE_ROOT]-> 2
2 -[RTREE_REFERENCE]-> 5
Properties: [[bbox, [100.0, 100.0, 100.0, 100.0]]]
Node[3]
Labels: []
Relationships
1 -[RTREE_METADATA]-> 3
Properties: [[maxNodeReferences, 100], [totalGeometryCount, 1]]
Node[5]
Labels: []
Relationships
2 -[RTREE_REFERENCE]-> 5
Properties: [[wkt, POINT (100 100)], [id, 4], [gtype, 1], [bbox, [100.0, 100.0, 100.0, 100.0]]]
明らかにジャンクションはなくなっていますが、空間インデックスは削除について認識していません。