Полнотекстовый поиск по сайту
Wednesday, January 9th, 2008Нет, все таки интересная СУБД - MySql. Я давно знал, что есть в ней такая возможность как полнотекстовый индекс. Но воспользоваться ею всерьез решил только сейчас. Почитал немного доку по MySql - на словах все должно быть просто отлично. Нам предлагается этикий простенький поисковый движок по сайту (если конечно же сайт берет контент из MySql-базы данных). Даже простенький язык запросов присутствует. Но на деле оказалось все не так радостно
Первая проблема, с которой я столкнулся - оказалось поиск идет только по словам из латинских символов. Решить эту проблему оказалось несложно - достаочно было выставить верную кодировку для поля - utf8_general_ci в моем случае. И заработал поиск по русским словам.
Вторая проблема заключается в том, что поиск осуществляется только по целым словам. В доке написано, что если задать фразу типа 'сло*' , то будут найдены такие записи содержащие и 'слон' и 'слово' и 'слонопотам'. Но на деле почему-то эта возможность не работает.
Третья проблема заключается в том, что некоторые фразы почему-то не находятся. Так например через MATCH(blabla) AGAINST('SEO') ничего не находится, хотя через аналогичный blabla LIKE '%SEO%' находится 9 записей.
А четвертая проблема заключается в том, что поиск регистрочувствительный. Правда с ней я еще не разбирался, мне бы для начала предыдущие проблемы решить...
