Нормализовать человеческие имена в postgresql - PullRequest
0 голосов
/ 07 августа 2020

Какой самый простой способ нормализовать текстовое поле в таблице postgresql?

Я пытаюсь найти дубликаты. Например, я хочу рассматривать О'Рейли как копию oreilly. La Salle также должен быть дубликатом la'salle.

Вкратце, мы хотим

  1. весь текст строчными буквами,
  2. убрать акценты
  3. убрать знаки препинания, такие как эти [.'-_] и
  4. убрать пробелы

Можно ли все это сделать за один или два простых шага? Идеально с использованием встроенных postgresql функций.

Ура

1 Ответ

0 голосов
/ 09 августа 2020

Следующее даст вам то, что вы хотите, используя только стандартные Postgres функции:

regexp_replace (lower(unaccent(string_in)),'[^0-9a-z]','','g')

См. Пример здесь . Или, если вам не нужны цифры, просто

regexp_replace (lower(unaccent(string_in)),'[^a-z]','','g')
...