Если вы немного знакомы с тем, как работает MySQL, то наверняка знаете, что полнотекстовый поиск в MySQL - это проблема. На самом деле есть оператор LIKE, который ищет подстроки, но работает он ОЧЕНЬ медленно. Позднее появилась продвинутая версия - MATCH....AGAINST, использующая специальный тип индекса - FULLTEXT index. Оно работает намного лучше и быстрее, но без специальных "подкруток" конфигурации ищет только слова длиннее 3 символов, очень странно считает релевантность и всё ещё медленное для больших объёмов текста. Всё ещё больше усложняется, когда текстовые данные хранятся в БД не в чистом виде, а, например, в виде JSON или сериализованы в serialize(). Да, мы делали хитрые конструкции LIKE и для этого, но универсального способа не существовало.