Bom dia meus amigos.
Cerca de 10 anos atrás precisei implementar uma busca similar ao do google, onde enquanto o usuário vai digitando o sistema vai sugerindo algumas palavras baseado numa busca.
Na época era uma agência de viagens onde as sugestões podiam ser basicamente qualquer coisa: nome de cidade, país, pacote, aeroporto, destino turístico e tal… na época fiz o seguinte:
1 - Criamos um job que executa um select nas tabelas necessarias(TBL_CIDADE, TBL_PACOTE, etc) e pegavamos o resultado desse select e jogamos num arquivo texto CSV.
2 - Usando o lucene, criamos index baseado nesses arquivos texto.
3 - Conforme o usuário digitava, a busca era feita nesse index.
Funcionava bem e muito rápido, esse job de criar os index rodava 1x por hora e era o suficiente.
Hoje preciso desenvolver a mesma rotina, num cenário parecido.
Minha duvida:
Hoje, 10 anos depois, qual é a melhor maneira de se implementar isso ?
Até posso implementar da mesma maneira que fiz antes, mas como estou um tempo fora do mercado gostaria de saber de existe uma maneira mais legal de fazer isso.
A unica diferença é que aqui não poderei rodar o job de 1h em 1h hora, o ideal seria algo real time ou que pelo menos esse job seja apenas incremental a cada 30s ou menos, porque aqui os registros nessas tabelas são inseridos/atualizados a todo momento.
O que me indicam ?
Grande abraço!