Tenho a seguinte consulta:
select
vec.vec,
vec @@ to_tsquery($$'fabr':*A$$), -- true
to_tsquery($$'fabr':*A$$), -- fabr
vec @@ to_tsquery($$'fabry':*A$$), -- false
to_tsquery($$'fabry':*A$$), -- fabri <-- "i" instead of "y"
vec @@ to_tsquery($$'fabryc':*A$$), -- true
to_tsquery($$'fabryc':*A$$) -- fabryc
from (
select setweight(to_tsvector('english', coalesce('fabryczna')), 'A') as vec
) vec
É mais detalhada esta consulta converte "fabry" para "fabri":
select to_tsquery($$'fabry':*A$$) -- will return "fabri" instead of "fabry"
Isso está acontecendo porque estou usando o ditado "inglês" ao consultar a palavra "polonês"?
É possível evitar essa situação sem instalar o dict polonês? Existe alguma opção para apenas forçar pg a corresponder a caracteres EXATOS? (não quero usar
like/ilike
)
Se você não quiser a biblioteca polonesa, pode usar o
simple
dicionário que também manteráy
: