Каков наилучший способ реализации коррекции опечаток в поиске в php / mysql?

У меня есть сайт, в котором перечислены фильмы. Естественно, люди совершают орфографические ошибки при поиске фильмов, и, конечно же, есть факт, что в некоторых фильмах есть апострофы, используются буквы для обозначения номеров в названии и т. Д.

Как получить скрипт поиска, чтобы игнорировать эти ошибки? Вероятно, нужно что-то более интеллектуальное, чем WHERE mov_title LIKE '%keyword%' .

Было высказано предположение, что я использую полнотекстовую поисковую систему, но все эти вещи выглядят очень сложными, и я чувствую, что их внедрение в мое приложение будет похоже на ад на земле. Если мне нужно использовать один, то какой наименее инвазивный, который будет безболезненным для реализации в существующий код?

    Я думаю, вам придется реализовать внешнюю полнотекстовую поисковую систему. MySQL просто не подходит для полнотекстового поиска. Я бы сказал, что вы должны дать Люцене пройти ( учебники ). Zend Framework имеет API, который подключается к Lucene, что упрощает изучение и использование.

    Предполагая, что вы используете MySQL – MySQL не имеет встроенных функций, способных это сделать.

    Это означает, что вам придется выполнять полнотекстовый поиск самостоятельно или использовать сторонний инструмент полнотекстового поиска.

    • Если вы его реализуете самостоятельно, вы должны изучить алгоритмы метафонов или двойных метафонов (я бы порекомендовал их над soundex, что не так хорошо подходит для этого типа задач), чтобы хранить phoenetic представления всех ваших слов. Однако создание собственного полнотекстового поиска не является задачей для слабонервных. Не пытайтесь, если вы не считаете себя мастером базы данных.
    • Если вы хотите использовать сторонний инструмент, Lucene – это путь. Он переносится на несколько разных языков / платформ, включая PHP, – вам не нужно использовать Java.

    Я не использовал ни php, ни mysql, но альтернативой полнотекстовому поиску может быть поиск в soundex .