Mysql
 sql >> Database >  >> RDS >> Mysql

Affinità tra un testo e un elenco di parole chiave?

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.