Решал такую задачу. Пришел к тому что делаеть через регулярку.
Если в строке запроса есть буква "е", то все вхождения замениям на [е|ё]
$q = str_replace('е', '[е|ё]', $q);
и в sql уже идет с
select *
from tbl
WHERE tbl.name SIMILAR TO '%ж[е|ё]лтый%'
Наверное еще можно исключить в базе эту пресловутую букву ё UPDATE table SET field = REPLACE(field, 'ё', 'е');
В Mysql этот запрос заменит все буквы, если это подойдет, то удастся избежать проблем в будущем. В коде что то менят, себе яму копать.
Используйте расширение unaccent
Подробности https://www.postgresql.org/docs/current/unaccent.html
С дистрибутивом поставляются правила соответствия символов, например: /usr/pgsql-13/share/tsearch_data/unaccent.rules
После подключения правил и перестроения индексов БД согласно этим правилам, поиск должен осуществляться без учета разницы между "е" и "ё".