Оптимизация поиска города

программирование БД

Ребята, поделитесь мыслями.
Есть большая таблица с городами всего мира. Допустим в ней хранится Сент-Люсия, а неразумный пользователь в форме заполнил город как Сент Люсия. Как бы проще сделать так, чтобы определить что имелся ввиду именно этот город?

Примечание:
2SKYDOS
Перекачивать с сервера на флешку пользователя 250 тыс. городов очень накладно.
Ответы:
Расстояние Левенштейна тебе поможет
1) В таблице базы данных делаете дополнительное индексируемое поле, в него пишете следующее:
название приводим к small caps, заменяем все небуквенные символы Unicode на пробелы (у каждого символа Unicode есть категория), убираем повторяющиеся пробелы, а также пробелы на концах. Например, "`Сент - Люсия '  " преобразуется в "сент люсия".
Я бы сделал выпадающий список, с возможностью ввода. После ввода каждого символа - обновлял бы список с учетом уже введенных символов (то есть результат запроса LIKE '<введенные символы юзером>%') Таким образом, после ввода "Сент" - юзер бы увидел что в списке уже находится введенное полностью название "Сент-Люсия". Так как ничто не может противостоять силе лени в юзер-интерфейсе, можно быть уверенным, что юзер не продолжит неправильный ввод, а выберет из списка готовое.
первоначально надо ввести меру близости между словами какой она будет решай сам можно даже просто написать алгоритм который будет выбирать слово с наименьшими исправлениями вот тогда всё ок будет
помере ввода пусть выдаётся подсказка
как интелетиве сенс в студии ну или других продуктах вот тогда он сразу будет и правильно вводить и ты просто будешь ввыодить список похожих слов


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.