сопоставление слов со знаками ударения, умлаутами и т. д. mysql / php - PullRequest
0 голосов
/ 14 сентября 2009

У меня есть веб-сайт, для которого я только что написал отличную функцию поиска. Я только что понял, что у меня есть несколько слов в моей БД с отметками акцента. Поэтому, когда кто-то вводит слово для поиска, конечно, без знака акцента, он не находит то, что ищет.

большинство функций поиска уже решили эту проблему; Как они это делают? Там должен быть какой-то умный трюк с этим. Большинство моих запросов используют функцию MATCH в MySQL, но один из них использует LIKE.

1 Ответ

1 голос
/ 14 сентября 2009

Вам необходимо установить конкретную сортировку в вашей схеме, чтобы MySQL знал, какие символы должны быть эквивалентны. То, считается ли буква с диакритическим знаком такой же, как буква без или какой-либо другой последовательностью символов, зависит от языка, но попробуйте utf8_general_ci в качестве отправной точки для игнорирования ударений (если вы используете набор символов UTF-8, который должно быть на самом деле).

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

...