Isso é um pouco longo para um comentário.
Para esse tipo de pesquisa, você pode considerar um índice de texto completo. A documentação está aqui . Estes implementam o
MATCH . . . AGAINST
funcionalidade. Com essa funcionalidade, você pode ordenar os resultados por relevância. Isso significa que você não precisa decidir antecipadamente se o conector é "e" ou "ou" entre várias palavras. Você também pode implementar uma pesquisa booleana, que permitiria uma lógica complexa mais complexa, se desejar.