Добавлена миграция, отвечающая за заполнение базы песен и индекса. Впилена логика.

В структуру добавлен элемент таблицы обратного индекса. Пока тупо <токен, ссылки на песни с ним>. Синонимы не вставлял.
Добавил миграцию, заполняющую базу. И песен, и индекса одновременно. Добавил небольшие файлики для тестирования. Все работает.
У меня тут загенерилось 150 MB текстов песен. Могу отдать на флешке. На них не тестировал. 
Логика нещадно впилена в 4-ю миграцию. В коде есть места, где надо что-то изменить, отмечены TODO. Например, связать все это с формами django. По-хорошему, логику надо бы вынести в отдельный файл. 
БНФ для запроса описана где-то там же. Запросы типа NOT обрабатываются корректно, но выводится их дополнение. В формах неплохо бы подсветить найденные слова. Я их выкинул в какую-то глобальную переменную. Там есть небольшой закомменченный участок кода - это как работало в Анне Карениной NOT и подсветка. 
В консоль выводятся тексты песен.
Из requirements можно не ставить MySQLdb