Проблема в том, что полнотекстовый парсер анализирует эти строки как имена хостов:
SELECT alias, description, token, lexemes
FROM ts_debug('english', '@andy.huang:synapse.siliconmotion.com')
WHERE alias <> 'blank';
alias | description | token | lexemes
-------+-------------+---------------------------+-----------------------------
host | Host | andy.huang | {andy.huang}
host | Host | synapse.siliconmotion.com | {synapse.siliconmotion.com}
(2 rows)
Вы можете заменить периоды сбоя пробелами при индексации:
SELECT alias, description, token, lexemes
FROM ts_debug('english',
translate('@andy.huang:synapse.siliconmotion.com', '.', ' '))
WHERE alias <> 'blank';
alias | description | token | lexemes
-----------+-----------------+---------------+--------------
asciiword | Word, all ASCII | andy | {andi}
asciiword | Word, all ASCII | huang | {huang}
asciiword | Word, all ASCII | synapse | {synaps}
asciiword | Word, all ASCII | siliconmotion | {siliconmot}
asciiword | Word, all ASCII | com | {com}
(5 rows)
Но я быиспользуйте настройку полнотекстового поиска simple
на вашем месте.Или вы хотите использовать stemming (сравните "лексемы" и "лексемы" выше)?