On Sun, Oct 29, 2017 at 10:07 AM, Connor Wolf <w...@imaginaryindustries.com> wrote: > Hi there! > > I'm looking at implementing a custom indexing scheme, and I've been having > trouble understanding the proper approach. > > Basically, I need a BK tree, which is a tree-structure useful for indexing > arbitrary discrete metric-spaces (in my case, I'm interested in indexing > across the hamming edit-distance of perceptual hashes, for fuzzy image > searching). I'm pretty sure a SP-GiST index is the correct index type, as my > tree is intrinsically unbalanced. > > I have a functional stand-alone implementation of a BK-Tree, and it works > very well, but the complexity of managing what is basically a external index > for my database has reached the point where it's significantly problematic, > and it seems to be it should be moved into the database. > > Anyways, looking at the contents of postgres/src/backend/access/spgist, it > looks pretty straightforward in terms of the actual C implementation, but > I'm stuck understanding how to "install" a custom SP-GiST implementation. > There are several GiST indexing implementations in the contrib directory, > but no examples for how I'd go about implementing a loadable SP-GiST index. > > Basically, my questions are: > > Is it possible to implement a SP-GiST indexing scheme as a loadable module? > > If so, how? > And is there an example I can base my implementation off of?
Look on RUM access method ( https://github.com/postgrespro/rum ) we developed using api available since 9.6. > > I'm relatively comfortable with C (much moreso with C++), but I haven't > spent a lot of time looking at the postgresql codebase. I don't think I > could start from a empty folder and make a properly-implemented module in > any reasonable period of time, so if I have a working example for some sort > of index that uses the same interfaces that would really help a lot. > > Thanks! > Connor -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers