PostgreSQL full text search words delimiter

full-text-searchpostgresql

Please help me to understand how to change words delimiter when I use gin index. The problem is that "," ";" and " " signs are words delimiters but the "." isn't. So in phrase "Some 11.22.33.44 IP" I am able to find "Some" "11.22.33.44" "IP" words. When I am looking for "33" – unable to find it. Many thanks for the help.

Best Answer

The "natural" way to do this would be to change or write your own text search parser. While it is possible to do that, it is unreasonably difficult.

Do you want both '11.22.33.44' and '33' to show up as individual tokes, or just '33'? If the latter, then maybe just preprocess your data by replacing all '.' with ' ':

replace(doc,'.',' ')

Of course you should do the same replacement on the queries as well before passing them to plainto_tsquery.