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

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

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

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

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

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

3 Responses to “Полнотекстовый поиск по сайту”

  1. admin Says:

    Со второй проблемой разобрался. Конечно же это я сглупил. Надо было дописать еще волшебные слова IN BOOLEAN MODE :)

  2. famchyk Says:

    О спасиба тебе великий человек
    и я тоже невнемателно читю маны но благодаря тебе ;)

  3. Паша Says:

    Hазместите у себя на блоге копилку на “Поддержание блога”. Думаю, многие пришлют по баксу на благо интересного ресурса.

Leave a Reply