Antes de hacer algo más complicado, ¿ha considerado no enviar la solicitud hasta que el usuario haya dejado de escribir durante al menos un cierto intervalo de tiempo (digamos, 1 segundo)? Eso debería reducir drásticamente la cantidad de solicitudes que se realizan con poco esfuerzo de su parte.