Поначалу эта проблема выглядит просто, но это червь.
Решение должно учитывать все варианты использования: это только вопрос удаления / перезаписи специальных символов? Вам нужно учитывать опечатки (это casey grill
то же самое)? Вам нужно учитывать отличительные знаки (это Casey's Grill #2
то же самое)? Вам нужно учитывать сокращения (это NY Grill
совпадает с New-York Grill
?) Вам нужно учитывать числа (это 1st av. Grill
совпадает с first avenue grill
)?
Если это ваша база данных + веб-сайт, проще всего записать / сравнить URL-слаг напрямую.
Иначе, или если вы не контролируете URL-адрес (например, если это результат окна поиска), вы можете сохранить / сравнить разобранное имя. Используя заголовок базы данных и слаг URL, вы преобразуете имя в общие элементы. Например, вы заменяете общие сокращения на их полный текст, удаляете все специальные символы, удаляете / добавляете пробелы, если у вашего языка есть акценты, вы можете удалить их, стандартизируете регистр и т. Д. c. Только вы можете найти и применить подходящие преобразования.
Затем вы можете сравнить два проанализированных имени, используя любой подходящий метод сравнения (триграмма, простое равенство, как запросы и т. Д. c)