Pregunta

Tengo una búsqueda en vivo en mi página de ayuda que busca en nuestra base de datos ayuda y devuelve los resultados relevantes. Calculo que una buena manera de decidir lo que hay más documentación sería para registrar las búsquedas que devuelven no hay resultados a la base de datos.

Normalmente, esto sería muy simple, pero el hecho de que se trata de una búsqueda en tiempo real ha hecho que sea un poco más complejo.

Así que cuando alguien busca:

  • Esta búsqueda no devuelve ningún resultado.

porque es una búsqueda en tiempo real obtenemos búsquedas de:

  • Este es
  • Esta búsqueda r
  • Esta búsqueda devuelve n
  • Esta búsqueda no devuelve ningún resultado.

Obviamente, sería mejor si pudiéramos registrar la frase completa y no las parciales.

Así que por ahora el camino Estoy vertido todas las búsquedas en una tabla que se parece a: (Id int, texto SEARCH_STRING, int count)

Las únicas formas que se me ocurre que podría ayudar sería

  • Antes de añadir una nueva fila a la tabla hacer una búsqueda como de la cadena de búsqueda en contra de las búsquedas en la mesa y, si tener un partido no inserte o incrementar la cuenta. Sin embargo, espero que esta tabla obtendrá realmente grande y una consulta como al igual que llegaría a ser muy lento.

  • Escribir algunos javascript porque si el valor de entrada no ha cambiado en 2 segundos enviar una búsqueda especial en vivo con una bandera que dice que para iniciar la sesión si se trata de un fallo.

Me parece que tiene que haber una mejor manera de manejar esto, pero estoy ciega en nada. ¿Alguna idea?

¿Fue útil?

Solución

Estoy pensando en lo que debe hacer es utilizar una tabla temporal (todos los días, tal vez, o cada hora si necesita retroalimentación más rápida) del candidato 'perdido' búsquedas. Al final de la vida útil de la mesa, se pone posprocesarlo tal que cualquier búsqueda que son los prefijos de otras búsquedas perdidas, o de búsquedas con éxito, se ignoran. El resto entra en la tabla de búsquedas 'reales' perdido.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top