Архив рубрики: Сайты

Полнотекстовый поиск по сайту

Нет, все таки интересная СУБД — MySql. Я давно знал, что есть в ней такая возможность как полнотекстовый индекс. Но воспользоваться ею всерьез решил только сейчас. Почитал немного доку по MySql — на словах все должно быть просто отлично. Нам предлагается этикий простенький поисковый движок по сайту (если конечно же сайт берет контент из MySql-базы данных). Даже простенький язык запросов присутствует. Но на деле оказалось все не так радостно 🙁

Первая проблема, с которой я столкнулся — оказалось поиск идет только по словам из латинских символов. Решить эту проблему оказалось несложно — достаочно было выставить верную кодировку для поля — utf8_general_ci в моем случае. И заработал поиск по русским словам.

Вторая проблема заключается в том, что поиск осуществляется только по целым словам. В доке написано, что если задать фразу типа ‘сло*’ , то будут найдены такие записи содержащие и ‘слон’ и ‘слово’ и ‘слонопотам’. Но на деле почему-то эта возможность не работает.

Третья проблема заключается в том, что некоторые фразы почему-то не находятся. Так например через MATCH(blabla) AGAINST(‘SEO’) ничего не находится, хотя через аналогичный blabla LIKE ‘%SEO%’ находится 9 записей.

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