What is an R-tree index?
An R-tree index is used for indexing spatial data. A hash index can’t handle range searches. A B-tree index only handles range searches in a single dimension. R-trees can handle multi-dimensional data. For example, if an R-tree index can be built on an attribute of type point, the system can more efficiently answer queries such as “select all points within a bounding rectangle.” The canonical paper that describes the original R-tree design is: Guttman, A. “R-trees: A Dynamic Index Structure for Spatial Searching.” Proceedings of the 1984 ACM SIGMOD Int’l Conf on Mgmt of Data, 45-57. You can also find this paper in Stonebraker’s “Readings in Database Systems”. Built-in R-trees can handle polygons and boxes. In theory, R-trees can be extended to handle higher number of dimensions. In practice, extending R-trees requires a bit of work and we don’t currently have any documentation on how to do it.