Re: [HACKERS] new function for tsquery creartion
От | Alexey Chernyshov |
---|---|
Тема | Re: [HACKERS] new function for tsquery creartion |
Дата | |
Msg-id | 20171013163732.1bb85695@PostgresPro-A-Chernyshov обсуждение исходный текст |
Ответ на | Re: [HACKERS] new function for tsquery creartion (Victor Drobny <v.drobny@postgrespro.ru>) |
Ответы |
Re: [HACKERS] new function for tsquery creartion
Re: [HACKERS] new function for tsquery creartion |
Список | pgsql-hackers |
Hi all, I am extending phrase operator <n> is such way that it will have <n,m> syntax that means from n to m words, so I will use such syntax (<n,m>) further. I found that a AROUND(N) b is exactly the same as a <-N,N> b and it can be replaced while parsing. So, what do you think of such idea? In this patch I have noticed some unobvious behavior. # select to_tsvector('Hello, cat world!') @@ queryto_tsquery('cat AROUND(1) cat') as match; match -------t cat AROUND(1) cat is the same is "cat <1> cat || cat <0> cat" and: # select to_tsvector('Hello, cat world!') @@ to_tsquery('cat <0> cat');?column? -------t It seems to be a proper logic behavior but it is a possible pitfall, maybe it should be documented? But more important question is how AROUND() operator should handle stop words? Now it works as: # select queryto_tsquery('cat <2> (a AROUND(10) rat)');queryto_tsquery ------------------'cat' <12> 'rat' (1 row) # select queryto_tsquery('cat <2> a AROUND(10) rat'); queryto_tsquery ------------------------'cat' AROUND(12) 'rat' (1 row) In my opinion it should be like: cat <2> (a AROUND(10) rat) == cat <2,2> (a <-10,10> rat) == cat <-8,12> rat cat <2> a AROUND(10) rat == cat <2,2> a <-10,10> rat = cat <-8, 12> rat Now <n,m> operator can be replaced with combination of phrase operator <n>, AROUND(), and logical operators, but with <n,m> operator it will be much painless. Correct me, please, if I am wrong. -- Alexey Chernyshov Postgres Professional: http://www.postgrespro.com The Russian Postgres Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
В списке pgsql-hackers по дате отправления: