Re: [pgsql-advocacy] Function which gives back the - Mailing list pgsql-novice

From Virgile Beddok
Subject Re: [pgsql-advocacy] Function which gives back the
Date
Msg-id 1218.146.140.8.94.1112025141.squirrel@webmail.igd.fraunhofer.de
Whole thread Raw
In response to Re: [pgsql-advocacy] Function which gives back the nearest neighbours  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-novice
> Bruno Wolff III <bruno@wolff.to> writes:
>> On Sun, Mar 27, 2005 at 13:24:34 +0800,
>>   Christopher Kings-Lynne <chriskl@familyhealth.com.au> wrote:
>>>> I'm looking for an existing function which allows me to search the
>>>> nearest
>>>> neighbours of the requested value.
>>>
>>> Well you could try something like:
>>>
>>> SELECT * FROM table ORDER BY ABS(val - 2) LIMIT 1;
>>>
>>> That doesn't get you all the way there, but it's an idea...
>
>> For multidimensional objects you can do the same thing with a distance
>> metric function. It will be relatively slow since this won't be
>> indexable
>> and will require a sort of all of the values. If you have some bound on
>> how far apart points can be, then you might be able to limit the set
>> of candidate points using an indexable search.
>
> I'd probably go with looking for the nearest "above" neighbor and
> nearest "below" neighbor separately, eg
>
>     select * from tab where val > 'target' order by val limit 1;
>     select * from tab where val < 'target' order by val desc limit 1;
>
> If there's an index on val, this should work really well.  Of course, if
> "nearest" is being defined in multidimensional terms as Bruno is
> imagining, it doesn't work at all...
>
>             regards, tom lane

Thanks for the help.
I'll try this for the one-dimensional search.
For the muti-dimensional one, which tools of postgresql could I use for
this metric function, or this indexable search, which Bruno mentioned.
Do they already exist?
What about using a tree for that? Is there one which could fit to such a
"nearest neighbour search", or do I have to implement it myself...

pgsql-novice by date:

Previous
From: "Costin Manda"
Date:
Subject: :(( VEEERRRRYYYY SLLLOOOWWWWWW!
Next
From: "Virgile Beddok"
Date:
Subject: Re: [pgsql-advocacy] Function which gives back the