Re: Range phrase operator in tsquery
От | Dmitry Dolgov |
---|---|
Тема | Re: Range phrase operator in tsquery |
Дата | |
Msg-id | CA+q6zcXyRY6kKpuXAJgvznyA0Jj3tOe=XkQ1n7e3XaE44ZW1Rw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Range phrase operator in tsquery (Aleksandr Parfenov <a.parfenov@postgrespro.ru>) |
Ответы |
Re: Range phrase operator in tsquery
|
Список | pgsql-hackers |
> On Fri, 27 Apr 2018 at 13:03, Aleksandr Parfenov <a.parfenov@postgrespro.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) )
В списке pgsql-hackers по дате отправления: