Думайте об индексе Lucene как о чем-то похожем на индекс, который имеется у вас в конце некоторых крупных справочников: для каждого важного термина, который появляется в книге, он перечисляет все страницы, на которых он появляется. Поэтому, если вы хотите найти все места в книге, где появляется термин, вы идете в указатель и получаете список страниц.
Что делает Lucene, так это берет документы, разбивает их на отдельные слова (этот процесс называется «токенизация»), а затем для каждой записи слова / токена в своем индексе, что это слово появляется в этом документе.
Думайте об индексе как о хеш-таблице (на самом деле это не единица, но та же идея): ключи - это слова / токены, и для каждого ключа есть блок со списком ссылок на документы (URI, имена файлов), которые содержат Это слово. Он не хранит сам документ - просто ссылка на него. Когда вы выполняете поиск в Lucene, вы предоставляете ключевое слово и возвращаете список документов, содержащих это ключевое слово, которые появляются в его индексе.
MySQL и другие СУБД оптимизированы для хранения и извлечения записей - наборов предопределенных упорядоченных столбцов. Когда вы помещаете индекс в столбец, он смотрит на все содержимое столбца как на единое целое. Если этот столбец представляет собой фрагмент текста, он не разбивается на слова.