Вы можете использовать Solr / Lucene для полнотекстового поиска по вашим данным БД. Так как моя база данных MySQL слишком большая для быстрого полнотекстового поиска, я решил объединить mysql и Solr / lucene.
Важно знать, что Solr / Lucene не является плагином MySQL. Таким образом, вы не сможете осуществлять поиск по полнотекстовому индексу, используя типичные SQL-выражения MySQL. Полнотекстовый поиск, инициированный приложением, должен сначала отправить запрос в сторонний полнотекстовый индекс (Solr), который возвращает первичные ключи связанных документов. Второй шаг - запустить оператор SQL для вашей MySQL innoDB с предложением where с соответствующими первичными ключами из набора результатов Solr.
Это решение работает в моем случае очень хорошо и намного, намного быстрее (и лучше), чем обычный полнотекстовый поиск MySQL Myisam.
В качестве альтернативы вы можете не только индексировать данные в solr. Вы также можете хранить данные в solr дополнительно. В этом случае solr может вернуть полный текст. Таким образом, вам не нужно получать данные из базы данных, как в примере выше.
Работают ли эти сторонние инструменты с таблицами InnoDB одинаково хорошо, как и с таблицами MyIsam?
Абсолютно. У Solr есть DataImportHandler. Вы определяете оператор SQL для получения данных, которые вы хотите индексировать в solr, например: select * from MyTable;
Но имейте в виду: сейчас (насколько я знаю) нет доступных плагинов MySQL Solr. Сотрудничество Solr и MySQL должно обрабатываться приложением.