[postgis-users] implement your own index

Mark Cave-Ayland mark.cave-ayland at siriusit.co.uk
Tue May 18 04:17:55 PDT 2010


Biddy wrote:

> María, thank you for the fast reply. However, these docs refer to the 
> usage of GIST.
> 
> If I understand it correctly, an R-tree is implemented on top of GIST.
> What if I don't want to use an R-tree? If I wanted to implement my own 
> ...let's say I want to implement a quadtree or some other new, fancy 
> index. How would I go about doing it?

The GIST API currently does not support space partition-based nor 
ordered indices (see 
http://www.postgresql.org/docs/8.4/interactive/gist-implementation.html 
for the exact details). So if you wanted to implement a quadtree or 
nearest neighbour type index searches then you'd need to alter the GIST 
API or invent another index AM in PostgreSQL first.

You may find the SP-GIST project interesting in this respect: 
http://www.cs.purdue.edu/spgist/.

> Additionally, is there a way to change the attributes with which the 
> R-tree is built? Or at least see how the R-tree is built?

It depends what attributes you are trying to modify. If they can be 
defined in terms of the GIST picksplit function then it is likely possible.

In terms of visualising the R-Tree itself, Oleg and Teodor's gevel 
module from http://www.sai.msu.su/~megera/postgres/gist/ can be used as 
an aid to generate output suitable for rendering.


HTH,

Mark.

-- 
Mark Cave-Ayland - Senior Technical Architect
PostgreSQL - PostGIS
Sirius Corporation plc - control through freedom
http://www.siriusit.co.uk
t: +44 870 608 0063

Sirius Labs: http://www.siriusit.co.uk/labs



More information about the postgis-users mailing list