Hola.
Cita: si busco canario me lo encuentra si pongo canarios no me muestra o si añado cualquier letra mas.
osea, tu quieres que si el tipo escribe:
canariosholamellamoralph le muestre los resultados de canarios. eso esta mas cerca de las artes arcanas de la programacion. (lo que no quiere decir que no se pueda, de hecho, si escribes
canariosholamellamoralph en google, este te sugiere buscar canarios.)
Si tu problema es solo del plural, podrias hacer algo asi:
1) usar trim.
2) strtolower
3) concatenar un '_' (u otro caracter)
4) str_replace('ces_', 'z')
5) rtrm de "es_"
6) rtrim de "s_"
7) rtrim de '_'
con eso eliminarias el plural, pero aun asi, no funciona con todas las palabras, el idioma español es muy variado (ni hablar si es multilenguaje)
si quieres mejorarlo, agarra un diccionario, leete todas las reglas ortograficas y empeza a armar filtros normalizadores (o googlealos, quizas alguien ya los hizo antes y los compartio)