From: | Dmitry Dolgov <9erthalion6(at)gmail(dot)com> |
---|---|
To: | a(dot)parfenov(at)postgrespro(dot)ru |
Cc: | PostgreSQL Developers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Range phrase operator in tsquery |
Date: | 2018-11-30 20:08:14 |
Message-ID: | CA+q6zcX2oiF5tGHAvbpn0_PcOC1d3iyb3MpveNqj3QqoBPYJ6A@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
> On Thu, Nov 15, 2018 at 11:15 PM Dmitry Dolgov <9erthalion6(at)gmail(dot)com> wrote:
>
> > On Fri, 27 Apr 2018 at 13:03, Aleksandr Parfenov <a(dot)parfenov(at)postgrespro(dot)ru> wrote:
> >
> > Nowadays, phrase operator in Postgres FTS supports only exact match of
> > the distance between two words. It is sufficient for a search of
> > simple/exact phrases, but in some cases exact distance is unknown and we
> > want to words be close enough. E.g. it may help to search phrases with
> > additional words in the middle of the phrase
>
> Hi,
>
> Thank you for the patch, it looks like a nice feature. Few questions:
>
> + if (!distance_from_set)
> + {
> + distance_from = distance_to < 0 ? MINENTRYPOS : 0;
> + }
> + if (!distance_to_set)
> + {
> + distance_to = distance_from < 0 ? 0 : MAXENTRYPOS;
> + }
>
> Why use 0 here instead of MAXENTRYPOS/MINENTRYPOS ? It looks a bit strange:
>
> SELECT 'a <,-1000> b'::tsquery;
> tsquery
> ------------------------
> 'a' <-16384,-1000> 'b'
> (1 row)
>
> SELECT 'a <,1000> b'::tsquery;
> tsquery
> ------------------
> 'a' <0,1000> 'b'
> (1 row)
>
> Also I wonder why after introducing MINENTRYPOS the LIMITPOS wasn't changed?
>
> #define LIMITPOS(x) ( ( (x) >= MAXENTRYPOS ) ? (MAXENTRYPOS-1) : (x) )
Due to lack of response I'm marking this as returned with feedback.
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2018-11-30 20:15:49 | Re: [PATCH] Log CSV by default |
Previous Message | Dmitry Dolgov | 2018-11-30 20:06:57 | Re: Synchronous replay take III |