Вообще полнотекстовый поиск - зло. Не даром тот же innodb его не поддерживает. Конечно для начинания не очень хорошо, но лучше думать в правильном направлении: поиск по хэшам словоформ быстрее и даёт больший результат. В кратце: храните хэши словоформ (основ слова, результаты обработки
стеммером). Поиск по хэшам, наприме crc32 делается в момент, особенно если индексы ставить правильно + такой поиск ищет неточные вхождения типа "коньяк", "коньяка", "коньяком"... Именно так в той или иной степени реализованы поиски в нормальных движках.
Пример с полнотекстовым поиском:
SQL |
select * from tbl where field like "_kyky%" |
Это означает, что мы ищем записи, где поле field имеет строку, где первая буква любая, далее идёт словосочетание "kyky", после которого всё, что угодно. ТАким образом видно, что используются специальные символы, которые необходимо экранировать в самой поисковой строке: % - любые символы в любом количестве, _ - любой один символ. Экранировтаь бэкслешем: \% \_