I would like to be able to query for documents containing @foo
without matching the naked word foo
. I'm using the simple dictionary but I notice @
characters are stripped:
SELECT to_tsquery('simple', '@foo'); -- produces 'foo'
Is there a way to force Postgres to treat the @
as significant?
Best Answer
The problem is the default text parser, in that it splits out the '@' symbol
You can see it here:
lexize is fine and keeps the
@
, but the parser splits it outYou'd need to write your own parser or change the source, which isn't fun if you don't know C!
One work-around would be to change
@foo
to something likeATSYMBOLfoo
using some wrapper function forto_tsvector
andplainto_tsquery