чтобы была поддержка emails с кириллическими адресами? Например, admin@москва.рф.
На текущий момент, скажем, Google и Yandex такие адреса поддерживают, — следовательно, подобные случаи имеют место быть (равно как и русскоязычные доменные зоны).
Из коробки, в версии PostgreSQL 13.3, такие адреса не распознаются как emails, см.:
select ts_debug('admin@москва.рф');
Это, конечно, весьма нежелательное поведение, т.к. получаются следующие лексемы (на входных данных из примера выше):
'admin':1 'москв':2 'рф':3
Что ведет к "условно-неверным" результатам поиска впоследствии.
@obartunov ?
Можно свой парсер подключить, посмотрите на https://github.com/postgrespro/pg_tsparser
Teodor его писал, скорее всего ему там на пять минут шаманства. Действительно, тогда мы не думали про кирилический домены.
Добрый день. Извините, возможно уже было такое предложение: кириллический домен, насколько мне известно преобразуется в латиницу, например москва.рф. - xn--80adxhks.xn--p1ai. Т.е. будет 2 поля с мейлом: отображаемое и фактическое (для отправки)
это называется International Domain Names (IDN), там вполне простой алгоритм декодирования
Это едва ли удачное решение для FTS, потому что email не отдельным полем идёт, а находится внутри документа. А «выцеплять» его всякий раз оттуда regexp'ами/иными средствами — мало удовольствия и серьёзная дополнительная нагрузка. Таким образом, очевидно, изменения нужно вносить именно в парсер FTS.
Обсуждают сегодня