Se le parole chiave rimangono sempre le stesse, potresti creare un indice su di esse che migliora la velocità di ricerca (enormemente). La struttura di dati standard per gestire questo problema è il trie ma un'alternativa molto migliore (!) è l'automa Aho-Corasick o un altro algoritmo di ricerca multi-pattern come Horspool multi-pattern (noto anche come algoritmo Wu-Manber).
Infine, un'alternativa molto semplice consiste nel concatenare tutte le tue parole chiave con pipe (|
) e utilizzare il risultato come espressione regolare. Tecnicamente, questo si avvicina all'automa Aho-Coraick ed è molto più semplice da implementare.