Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Melhor maneira de salvar consultas de pesquisa de usuários no ElasticSearch?


Você pode fazer isso criando um segundo índice em seu cluster ES. Quando um usuário envia uma pesquisa por meio de seu aplicativo, você executa duas etapas.
  1. Envie a pesquisa como uma consulta ao Elasticsearch para um comportamento de pesquisa normal.
  2. Envie uma solicitação de índice ao cluster com os termos de pesquisa fornecidos pelo usuário.

Com um segundo índice de todos os termos de pesquisa que foram enviados, você pode fazer várias coisas legais. Para o seu caso, você pode ter um campo de 'contagem' como no SQL que você incrementa à medida que mais pessoas pesquisam esse termo. Outro ótimo caso de uso são os termos recomendados no estilo do Google. Sua interface do usuário pode enviar uma solicitação de pesquisa com o texto inserido em cada pressionamento de tecla e preencher uma lista suspensa com resultados dos termos pesquisados ​​anteriormente. Você pode até personalizar isso adicionando um campo de usuário e filtrando os resultados que não são desse usuário específico.

O que deve ser lembrado é que o ElasticSearch pode ser usado como armazenamento de dados primário e secundário. Eu sempre sugiro que você mantenha apenas os dados que deseja perder (como o histórico de pesquisa) como dados primários. Mantenha os dados críticos do seu sistema em um armazenamento de dados mais tradicional, como o SQL, dessa forma é fácil fazer backup e restaurar se algo der errado!