marcin.kasper...@mekk.waw.pl writes: > Synopsis > ========= > 'goog:*' matches google.com > but > 'e-goog:*' does not match e-google.com
The reason for this seems to be that the pattern is treated as a hyphenated word: regression=# select TO_TSQUERY('english', 'e-goog:*'); to_tsquery ------------------------------- 'e-goog':* & 'e':* & 'goog':* (1 row) but the hostname isn't: regression=# select TO_TSVECTOR('english', 'See e-google.com'); to_tsvector -------------------------- 'e-google.com':2 'see':1 (1 row) If you change the text so it's not recognized as a hostname, you get lexemes that would match the query: regression=# select TO_TSVECTOR('english', 'See e-google com'); to_tsvector --------------------------------------------- 'com':5 'e':3 'e-googl':2 'googl':4 'see':1 (1 row) Possibly we could fix this by hacking the ts parser so that it would also apply the hyphenated-word rules to a hostname containing a dash. In general though, there are always going to be cases where prefix match doesn't work because of dictionary transformations ... regards, tom lane -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs