But tsvector recognices email format as natural. And I'm not looking for a substring. Please see the queries are incremental with the search string, and see last four results ... I think some think it's no working properly.
El 14 de marzo de 2012 19:05, Daniel Vázquez <daniel2d2...@gmail.com>escribió: > Hi guys, I'm going to crazy about FTS with prefix agains email values on > tsvector. Follow how to reproduce: > > For the next tsvector: > > =# select to_tsvector('u...@company.com') > to_tsvector > ---------------------- > 'u...@company.com':1 > > I expects TRUE for all next tsqueryes: > > select to_tsvector('u...@company.com') @@ to_tsquery('u:*'); > select to_tsvector('u...@company.com') @@ to_tsquery('us:*'); > select to_tsvector('u...@company.com') @@ to_tsquery('use:*'); > select to_tsvector('u...@company.com') @@ to_tsquery('user:*'); > select to_tsvector('u...@company.com') @@ to_tsquery('user@:*'); > select to_tsvector('u...@company.com') @@ to_tsquery('user@c:*'); > select to_tsvector('u...@company.com') @@ to_tsquery('user@co:*'); > select to_tsvector('u...@company.com') @@ to_tsquery('user@com:*'); > select to_tsvector('u...@company.com') @@ to_tsquery('user@comp:*'); > select to_tsvector('u...@company.com') @@ to_tsquery('user@compa:*'); > select to_tsvector('u...@company.com') @@ to_tsquery('user@compan:*'); > select to_tsvector('u...@company.com') @@ to_tsquery('user@company:*'); > select to_tsvector('u...@company.com') @@ to_tsquery('user@company.:*'); > select to_tsvector('u...@company.com') @@ to_tsquery('user@company.c:*'); > select to_tsvector('u...@company.com') @@ to_tsquery('u...@company.co:*'); > select to_tsvector('u...@company.com') @@ to_tsquery('u...@company.com: > *'); > > But NOT, there are some NOT expected and confusing me results: > > =# select to_tsvector('u...@company.com') @@ to_tsquery('us:*'); > ?column? > ---------- > t > (1 row) > > =# select to_tsvector('u...@company.com') @@ to_tsquery('user:*'); > ?column? > ---------- > t > > =# select to_tsvector('u...@company.com') @@ to_tsquery('user@:*'); > ?column? > ---------- > t > > select to_tsvector('u...@company.com') @@ to_tsquery('user@comp:*'); > ?column? > ---------- > f <---- FALSE (I expects TRUE) > > =# select to_tsvector('u...@company.com') @@ to_tsquery('user@company:*'); > ?column? > ---------- > f <---- FALSE (I expects TRUE) > > =# select to_tsvector('u...@company.com') @@ to_tsquery('user@company. > :*'); > ?column? > ---------- > f <---- FALSE (I expects TRUE) > > =# select to_tsvector('u...@company.com') @@ to_tsquery('user@company.c > :*'); > ?column? > ---------- > f <---- FALSE (I expects TRUE) > > =# select to_tsvector('u...@company.com') @@ to_tsquery('u...@company.co: > *'); > ?column? > ---------- > t <---- TRUE .... OOhhhhhHHH I'm going crazy!!! > > =# select to_tsvector('u...@company.com') @@ to_tsquery('u...@company.com: > *'); > ?column? > ---------- > t <---- TRUE ... Yes I'm crazy. > > Please some ligths about it. > (I follow the official docs in > http://www.postgresql.org/docs/9.1/interactive/textsearch.html for my > knowledge) > > Thx! > -- Daniel Vázquez SICONET (A Bull Group Company) Torre Agbar. Avda. Diagonal, 211 - planta 23 08018 - Barcelona telf: + 34 93 2272727 (Ext. 2952) fax: + 34 93 2272728 www.bull.es - www.siconet.es daniel.vazq...@bull.es