'AT&T'を検索ワードとして扱いたい場合は、デフォルトのパーサーが2つのワードとして分割するため、カスタマイズされたコンポーネントが必要になります。
steve@steve@[local] =# select * from ts_parse('default', 'AT&T');
tokid | token
-------+-------
1 | AT
12 | &
1 | T
(3 rows)
steve@steve@[local] =# select * from ts_debug('simple', 'AT&T');
alias | description | token | dictionaries | dictionary | lexemes
-----------+-----------------+-------+--------------+------------+---------
asciiword | Word, all ASCII | AT | {simple} | simple | {at}
blank | Space symbols | & | {} | |
asciiword | Word, all ASCII | T | {simple} | simple | {t}
(3 rows)
CREATE TEXT PARSERのドキュメントからわかるように、パーサーはC関数である必要があるように見えるため、これはそれほど簡単ではありません。
「underscore_word」を単一のトークンとして認識させる人のこの投稿が役立つ場合があります:http://postgresql.1045698.n5.nabble.com/Configure-Text-Search-parser-td2846645.html