Si les mots-clés restent toujours les mêmes, vous pouvez créer un index dessus, ce qui améliore (considérablement) la vitesse de recherche. La structure de données standard pour gérer cela est la trie mais une bien meilleure (!) alternative est l'automate Aho-Corasick ou un autre algorithme de recherche multi-modèle tel que Horspool multi-modèle (également connu sous le nom d'algorithme Wu-Manber).
Enfin, une alternative très simple consiste à concaténer tous vos mots-clés avec des pipes (|
) et utilisez le résultat comme une expression régulière. Techniquement, cela se rapproche de l'automate Aho-Corasick et est beaucoup plus simple à mettre en œuvre pour vous.