BUG #16499: Escape Characters in FTS

Started by PG Bug reporting formalmost 6 years ago2 messagesbugs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

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

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: PG Bug reporting form (#1)
Re: BUG #16499: Escape Characters in FTS

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