Я ищу реализацию нечеткого поиска для небольшого приложения PHP / MySQL. В частности, у меня есть база данных с примерно 2400 записями (записи добавляются со скоростью около 600 в год, так что это база данных small ). Три области интересов: улица, фамилия и дата. Я хочу иметь возможность поиска по одному из этих полей и, по существу, иметь допуск к орфографическим / символьным ошибкам. т. е. адрес «123 Main Street» также должен совпадать с «123 Main St», «123 Main St.», «123 Mian St», «123 Man St», «132 Main St» и т. д., а также по названию и дата
Основные проблемы, которые у меня есть, с ответами на другие похожие вопросы:
- Невозможно определить синонимы для каждого возможного неправильного написания, забудьте об этом для дат и имен.
- Lucene и т. Д. Кажется очень тяжелым для такого ограниченного набора данных поиска (назовите его максимум 5000 записей, 3 поля на запись).
- Просто делать что-то с подстановочными знаками не кажется логичным со всеми возможными орфографическими ошибками.
Есть предложения? Я знаю, что это не будет возможно сделать изначально с MySQL, но так как набор данных настолько ограничен, я хотел бы сохранить его относительно простым ... возможно, класс PHP, который получает all записей из БД, использует какой-то алгоритм сравнения и возвращает идентификаторы похожих записей?
Спасибо,
Jason