From: | Glenn Maynard <glenn(at)zewt(dot)org> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: FTS phrase searches |
Date: | 2010-12-19 08:13:46 |
Message-ID: | AANLkTinRpz=SQj2k0bJ5P3K=y_2QODm+G7QkT_iO1EEa@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
I guess no response means it's not possible. I ended up doing a
manual substring match for quoted strings, but that's a poor hack.
Maybe I'll take a poke at implementing something like
tsvector_contains_phrase; it seems like a natural extension of what's
in there now.
On Mon, Nov 1, 2010 at 4:35 PM, Glenn Maynard <glenn(at)zewt(dot)org> wrote:
> How are adjacent word searches handled with FTS? tsquery doesn't do
> this, so I assume this has to be done as a separate filter step, eg.:
>
> # "large house" sales
> SELECT * FROM data WHERE fts @@ to_tsquery('large & house & sales')
> AND tsvector_contains_phrase(fts, to_tsvector('large house')));
>
> to do an indexed search for "large & house & sales" and then to narrow
> the results to where "large house" actually appears as a phrase (eg.
> adjacent positions at the same weight). I can't find any function to
> do that, though. (Presumably, it would return true if all of the
> words in the second tsvector exist in the first, with the same
> positions relative to each other.)
>
> "tsvector <@ tsvector" seems logical, but isn't supported.
>
> This isn't as simple as using LIKE, since that'll ignore stemming,
> tokenization rules, etc. If the language rules allow this to match
> "larger house" or "large-house", then a phrase restriction should,
> too. It's also painful when the FTS column is an aggregate of several
> other columns (eg. title and body), since a LIKE match needs to know
> that and check all of them separately.
>
> Any hints? This is pretty important to even simpler search systems.
--
Glenn Maynard
From | Date | Subject | |
---|---|---|---|
Next Message | Jasen Betts | 2010-12-19 09:33:49 | Re: Getting number of affected rows after DELETE FROM |
Previous Message | vvoody | 2010-12-19 03:23:30 | Have any tricks not to recreate a standby server to switch to the former primary? |