Use aspas em torno de seus termos se você os quiser como frases/literais ou se eles contiverem caracteres usados na sintaxe:
select to_tsquery('"hello there" | hi');
Tenha em mente que você realmente não deve ter caracteres malucos em seus termos, já que eles não vão corresponder a nada no tsvector.
Os caracteres (não token) reconhecidos pelo analisador tsquery são:
\0
(nulo), (
, )
,
(espaço em branco), |
, &
, :
, *
e !
. Mas como você tokeniza sua consulta deve ser baseado em como você configurou seu dicionário. Existem muitos outros caracteres que você provavelmente não desejará em sua consulta, não porque causarão um erro de sintaxe, mas porque significa que você não está tokenizando sua consulta corretamente. Use o
plainto_tsquery
versão se for um simples AND
consulta e você não quer lidar com a criação da consulta manualmente.