Как я могу скопировать колонку с названиями городов и преобразовать испанский акцент в формат ASCII? - PullRequest
0 голосов
/ 11 июня 2019

У меня есть таблица в БД PostgreSQL, в которой есть города с испанскими акцентами в именах. Пример: San Quintín. Проблема в том, что у нас есть английские пользователи, которые хотят искать этот город, но San Quintín === San Quintín !== San Quintin

Моим решением было создать столбец ascii_name для целей поиска. Можно ли скопировать столбец для строки и преобразовать значение в формат ASCII?

Я пытался экспортировать в CSV, но не смог найти способ конвертировать значения.

1 Ответ

1 голос
/ 11 июня 2019

Postgres (обычно) поставляется с модулем unaccent , хотя по умолчанию он не установлен.Вы можете использовать его для полнотекстового поиска без акцентов, и он также поставляется с единственной функцией, называемой unaccent.

CREATE EXTENSION IF NOT EXISTS UNACCENT;
select unaccent('San Quintín') = unaccent('San Quintin');
 ?column?
----------
 t

Не гарантируется, что результаты будут ASCII, потому что не все безударные версии символов являются ASCII,но я считаю, что это решит вашу проблему, и вам может даже не потребоваться дополнительный столбец.

...