Thread: BUG #16499: Escape Characters in FTS

BUG #16499: Escape Characters in FTS

From
PG Bug reporting form
Date:
The following bug has been logged on the website:

Bug reference:      16499
Logged by:          Chirag Gupta1
Email address:      chirag.gupta1@globallogic.com
PostgreSQL version: 9.6.0
Operating system:   Windows
Description:

Hi,

We are using FTS to implement search and there is a scenario where we have a
word say "IVR@#1", when I search for "1" there should not be any result as
per user perspective.
It seems special characters are replaced by spaces/blanks. Is there any way
to include Special characters in search? Kindly let us know through this
channel as earliest possible.

Regards
Chirag Gupta


Re: BUG #16499: Escape Characters in FTS

From
Tom Lane
Date:
PG Bug reporting form <noreply@postgresql.org> writes:
> We are using FTS to implement search and there is a scenario where we have a
> word say "IVR@#1", when I search for "1" there should not be any result as
> per user perspective.
> It seems special characters are replaced by spaces/blanks. Is there any way
> to include Special characters in search? Kindly let us know through this
> channel as earliest possible.

You would need to implement your own text search parser that classifies
"IVR@#1" as a single token.  That's certainly do-able, but it's not
exactly trivial.  The built-in parser doesn't have any ability to be
reconfigured to apply different tokenization rules: it just does
what's described at

https://www.postgresql.org/docs/current/textsearch-parsers.html

On the bright side, it sounds like you might not care too much
about URLs or hyphenated words, in which case your custom parser
could be far simpler than the built-in one.  There is a skeleton
parser in our source tree at src/test/modules/test_parser/ that
might help you get started.

            regards, tom lane