...das Rad nicht neu erfinden...
Warum programmierst du dir nicht selbst etwas - dürfte mit etwa 10 bis 15 Zeilen erledigt sein, wenn du AND, OR, NOT und "" bzw () implementieren willst.
Sorry, aber den Aufwand schätz ich deutlich höher ein.
Allein schon den passenden Regexp zu finden, um den String in Wörter zu zerlegen unter Berücksichtigung der Sonderzeichen, Umlaute, - etc., die teilweise zum Wort dazugehören, manchmal aber nicht.
Dann die Toleranz bei "", sodass "TV Sendung" auch bei "TV-Sendung" und "TVSendung", "TV/Sendung" u.ä. greift.
Dann noch Zusätze wie "Spiel" und "Spiele" oder Game/s, wobei mir hier gerade nicht der Fachbegriff für das Feature einfällt usw.
Für Python find ich jede Menge fertige Bibliotheken, die das mit sich bringen. Bei PHP nur immer den Hinweis zu MySQL.