From: | "Jamie Tufnell" <diesql(at)googlemail(dot)com> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Most efficient way to achieve this ts_query |
Date: | 2008-10-16 04:41:22 |
Message-ID: | b0a4f3350810152141g6de5deb6m106e22e4d08cf8a@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On 10/16/08, Frank Bax <fbax(at)sympatico(dot)ca> wrote:
> Jamie Tufnell wrote:
>> If someone uses a search query on my site like this:
>>
>> "abc def"
>>
>> I would like to return all results for 'abc & def' first, followed by
>> all results for tsquery 'abc | def' is there some way to express this
>> in one tsquery? What's the most efficient way to go about this? The
>> search is on one column.
>
>
> SELECT * FROM table WHERE field='abc' OR field~'def'
> ORDER BY CASE WHERE field~'abc' AND field~'def' THEN 1 ELSE 0 END DESC;
I am using tsqueries though (to_tsquery() and to_tsvector()) to
benefit from stemming.
I understand how your approach might still apply, but I'm curious to
know if that's the best way, or can it be done in a single
to_tsquery(), with a single MATCH ?
Thanks,
Jamie
From | Date | Subject | |
---|---|---|---|
Next Message | Oliveiros Cristina | 2008-10-16 14:02:59 | Re: Search fields in multiple tables |
Previous Message | Raj Mathur | 2008-10-16 04:01:12 | Search fields in multiple tables |