Registrando acidentes Live Search
-
22-08-2019 - |
Pergunta
Eu tenho uma pesquisa ao vivo na minha página de ajuda que procuras nosso banco de dados ajuda e retorna os resultados relevantes. Figura I que uma boa maneira de decidir o que precisa de mais documentação seria pesquisas que retornam nenhum resultado para nosso banco de dados de log.
Normalmente, isso seria muito simples, mas o fato de que é uma pesquisa ao vivo tornou um pouco mais complicado.
Assim, quando alguém procura por:
- Esta busca não retornou resultados.
porque é uma pesquisa ao vivo temos pesquisas de:
- Esta s
- Esta pesquisa r
- Esta busca retornos n
- Esta busca não retornou resultados.
Obviamente, seria melhor se pudéssemos registrar a frase completa e não os parciais.
Assim, por agora, a maneira que eu estou apenas despejar todas as buscas em uma tabela que se parece com: (Id int, texto SEARCH_STRING, int count)
As únicas maneiras que eu posso pensar que ajuda poder seria
-
Antes de adicionar uma nova linha para a mesa fazer como a busca da cadeia de pesquisa contra as pesquisas na tabela e se há uma correspondência não insira ou incrementar a contagem. No entanto, espero que esta tabela vai ficar muito grande e um como consulta como que se tornaria muito lento.
-
Escreva alguns javascript para se o valor de entrada não mudou em 2 segundos enviar uma pesquisa especial ao vivo com uma bandeira que diz a registrá-lo se é uma miss.
Parece-me que deve haver uma maneira melhor de lidar com isso, mas eu estou cega em qualquer coisa. Alguma idéia?
Solução
Eu estou pensando o que você deve fazer é usar um temporário (diariamente, talvez, ou por hora se você precisar de mais rápido retorno) da tabela do candidato 'perdidas' pesquisas. No final da vida útil da tabela, ele é pós-processada de tal forma que todas as pesquisas que são prefixos de outras pesquisas não atendidas, ou de pesquisas bem-sucedidas, são ignorados. O resto de ir para a mesa de pesquisas perdidas 'reais'.