From: | "Kevin Grittner" <kgrittn(at)mail(dot)com> |
---|---|
To: | "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | "Pavel Stehule" <pavel(dot)stehule(at)gmail(dot)com>,"PostgreSQL Hackers" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: ToDo: KNN Search should to support DISTINCT clasuse? |
Date: | 2012-10-25 17:57:06 |
Message-ID: | 20121025175706.306890@gmx.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Tom Lane wrote:
> "Kevin Grittner" <kgrittn(at)mail(dot)com> writes:
> > Pavel Stehule wrote:
> >> 2012/10/22 Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>:
> >>> Perhaps it would be close enough to what you want to use DISTINCT ON:
> >>> contrib_regression=# explain select distinct on( t <-> 'foo') *,t <-> 'foo' from test_trgm order by t <-> 'foo' limit 10;
>
> >> good tip - it's working
>
> > If two or more values happen to be at exactly the same distance,
> > wouldn't you just get one of them?
>
> Yeah, that is a hazard. I'm not sure whether <->'s results are
> sufficiently quantized to make that a big problem in practice.
It doesn't seem too far-fetched for trigram queries:
test=# select nm, nm <-> 'anders' from (values ('anderson'),('andersen'),('andersly')) x(nm);
nm | ?column?
----------+----------
anderson | 0.4
andersen | 0.4
andersly | 0.4
(3 rows)
test=# select distinct on (nm <-> 'anders') nm, nm <-> 'anders' from (values ('anderson'),('andersen'),('andersly')) x(nm) order by nm <-> 'anders' limit 3;
nm | ?column?
----------+----------
anderson | 0.4
(1 row)
-Kevin
From | Date | Subject | |
---|---|---|---|
Next Message | Euler Taveira | 2012-10-25 22:59:12 | Re: sql_implementation_info still contains old value |
Previous Message | David E. Wheeler | 2012-10-25 17:53:55 | Re: Extensions Documentation |