Рассмотрим ручное построение инвертированного индекса в таблице MyISAM.Сложнее было бы поддерживать индекс в актуальном состоянии, что потребует большого количества кода при обновлении / вставке строк или полного повторного индексирования каждые х дней (или часов).
Если вы не знаете, что такое инвертированный индекс: это индекс, в котором вы сопоставляете слово с идентификатором документа.Например, если вы хотите проиндексировать таблицу (идентификатор, имя, описание) с помощью (1, «Тестовый продукт», «Этот продукт потрясающий»), вы можете разделить слова на «Тест», «продукт», «Этот","является удивительным".Затем вы можете поместить все эти слова в таблицу базы данных (id, word, docID) => (1, «test», 1), (2, «product», 1), (3, «this», 1),и т.д.
Если вы хотите что-то искать, задайте этот индекс.Поисковый запрос "test" извлекает все записи со словом = "test", которое будет (1, "test", 1).Затем он знает, что ему нужен docID 1, и все готово.
Это определенно сложнее, чем использование стандартного решения, но оно должно работать для вашей ситуации:)
Конечно, это работает толькос разделенными пробелами языками.Если вы хотите китайский, у вас будут проблемы.
[править] Ах, да, запись в Википедии может помочь: http://en.wikipedia.org/wiki/Inverted_index