neo4j-contrib/spatial — pull request #161 by phil20686 (2014-12-22 18:52:46+00:00)
Title: Created a way to bulk load the RTree, with associated changes to the Lay...

...er interface to make it accessible through Layer.addAllNodes(Iterable)

Key Nodes: created a much more efficient way to load an RTree, references for the algorithms given in javaDoc comments as appropriate. Basic details below

1) if the insert large compared with the tree, rebuild the tree from scratch using a top down method which minimises overlapping.
2) Else use a seeded bulk clustering, i.e. use the existing tree structure to partition the data, and then bulk insert by building an R tree from scratch and inserting its children at appropriate points.
3) Outliers and underpacked nodes are dealt with through one by one insertion at the end. This means worst case behaviour is still polynomial if your data is constructed so that all inserts are always outliers.
4) This algorithm builds a tree with a loading factor of 0.7, this is slightly suboptimal from a querying point of view, but enormously beneficial if you plan further inserts.