tsearch2: how to plainto_tsquery() with "|"

Started by John Smithabout 12 years ago3 messagesgeneral
Jump to latest
#1John Smith
jayzee.smith@gmail.com

i can run "...@@ to_tsquery('cat | dog')".

but if i run "...@@ to_tsquery('cat dog')", it gives me a syntax error (#42601).

so i run "...@@ plainto_tsquery('cat dog')".

but then i can't run "...@@ plainto_tsquery('cat | dog')".

can you help before i give up on tsearch2?

thks, jzs

http://postgresql.1045698.n5.nabble.com/tsearch2-plainto-tsquery-with-OR-td1885955.html
http://www.postgresql.org/docs/9.3/static/textsearch.html

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: John Smith (#1)
Re: tsearch2: how to plainto_tsquery() with "|"

John Smith <jayzee.smith@gmail.com> writes:

i can run "...@@ to_tsquery('cat | dog')".
but if i run "...@@ to_tsquery('cat dog')", it gives me a syntax error (#42601).
so i run "...@@ plainto_tsquery('cat dog')".
but then i can't run "...@@ plainto_tsquery('cat | dog')".

Yeah ... that's pretty much exactly the point of having two different
functions. to_tsquery() honors boolean operators in the query, the other
doesn't.

If this doesn't fit your notions of a reasonable API, maybe you could
create your own preprocessing function.

regards, tom lane

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

#3John Smith
jayzee.smith@gmail.com
In reply to: Tom Lane (#2)
Re: tsearch2: how to plainto_tsquery() with "|"

i thought you shared my frustration :-) (see
http://postgresql.1045698.n5.nabble.com/tsearch2-plainto-tsquery-with-OR-td1885955.html).
anyway, then "...plainto_tsquery('...')" is pretty much useless when
it fails if someone inserts a single boolean operator - back to
"...to_tsquery('...')" and inserting operators outside tsearch2. thks,
jzs

http://postgresql.1045698.n5.nabble.com/OR-tsquery-td1910087.html

On 3/25/14, Tom Lane <tgl@sss.pgh.pa.us> wrote:

John Smith <jayzee.smith@gmail.com> writes:

i can run "...@@ to_tsquery('cat | dog')".
but if i run "...@@ to_tsquery('cat dog')", it gives me a syntax error
(#42601).
so i run "...@@ plainto_tsquery('cat dog')".
but then i can't run "...@@ plainto_tsquery('cat | dog')".

Yeah ... that's pretty much exactly the point of having two different
functions. to_tsquery() honors boolean operators in the query, the other
doesn't.

If this doesn't fit your notions of a reasonable API, maybe you could
create your own preprocessing function.

regards, tom lane

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general