簡體   English   中英

在Neo4J中批量插入shapefile

[英]Batch insertion of shapefiles in Neo4J

目前我正在與Neo4j + Neo4j Spatial合作,我想問你是否有一種將shapefile批量導入數據庫的方法,就像他們對OSM文件的處理方式一樣,原因是因為im正在處理龐大的數據集(100GB +),並且在使用標准ShapeFileImporter類插入數十萬個幾何圖形時,layer + index無疑會拖慢我的速度

我的問題是:有沒有一種方法可以批量導入shapefile,並且在插入之后,我們可以像處理.osm文件一樣執行database.reIndex()?

我正在使用neo4j 2.1.2和neo4j-spatial 0.13

ps:我還嘗試通過以下方法設置GraphDatabaseService:

.setConfig(GraphDatabaseSettings.node_auto_indexing, "false")
.setConfig(GraphDatabaseSettings.relationship_auto_indexing,"false")

但似乎ShapeFileImporter仍會創建和使用它們。

如果您使用的是提到的Neo4j和Neo4j-Spatial版本,則ShapeFileImporter類不會創建任何索引(不是Neo4j的意思)。 對於.shp文件中的每個形狀,它將提取與之關聯的所有屬性(而不僅僅是幾何形狀),創建一個節點,並將其添加到該圖層的RTree中。 所有這些的源代碼位於

ShapeFileImporter.java
EditableLayerImpl.java
DefaultLayer.java
RTreeIndex.java

讀取代碼時可能會造成混淆,但是名為index的成員不是 Neo4j的索引,它是Java代碼包裝的RTree圖。

OSM導入程序執行相同的工作(以及更多),只是拆分略有不同。 據我所知,這兩個導入器都沒有創建舊索引。 OSM導入器創建所有節點(數據和幾何圖形分別具有關系),然后從每個幾何圖形節點構建RTree。 SHP導入程序更簡單。 它創建結合了數據和幾何的節點,並將每個節點添加到RTree中。 我不認為一個整體相對於另一個整體的速度提高。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM