LIKE ищет по точному сопадению части строки, т.е.
'%яичница с овощами%'
найдет только строки, содержащие подстроку 'яичница с овощами' дословно и добуквенно.
Вы, судя по всему, хотите какой-то вариант полнотекстового поиска. В sqlite есть
довольно интересный встроенный, попробуйте разобраться и настроить под свои нужды.
Если такой вариант не подойдет, то можно на коленке сделать что-то свое:
1. разбить теги на отдельные слова (и поместить их в отдельную таблицу keywords, связанную с тегами)
2. отфильтровать ненужные слова типа "приготовить"
3. нормализовать слова - тут понадобится стеммер или словарь (думаю, можно найти библиотеку для питона, правда насчет поддержки русского языка не уверен)
4. запрос также пропускать через шаги 1-3
5. дальше искать как-то так:
SELECT tag_id, count(*)
FROM keywords
WHERE word IN ('query_word1', 'query_word2' ...)
GROUP BY tag_id HAVING count(*) = <number of words in query>