É um caso de uso de pesquisa crítico, e o MongoDB e o Redis são perfeitos para pesquisas baseadas em chaves e não são usados para fins de pesquisa, enquanto o Elasticsearch é um mecanismo de pesquisa distribuído, criado especificamente para esse caso de uso.
Antes de escolher o sistema, você deve saber como seu recurso funciona internamente e abaixo a consideração para selecioná-lo.
Requisitos não funcionais para seu recurso
- Qual seria o número total de consultas de pesquisa por segundo (QPS)?
- Com que frequência você atualizaria os documentos (ou seja, nomes em seu exemplo).
- Qual é o SLA após os nomes serem atualizados e aparecerem no resultado da pesquisa?
- SLA para seus resultados de pesquisa.
Alguns requisitos funcionais.
- Qual deve ser a aparência do preenchimento automático, pesquisa de prefixo e infixo em nomes?
- Mínimo de quantos caracteres o usuário deve digitar antes de mostrar os resultados do preenchimento automático.
- Com que frequência os requisitos acima podem mudar.
Elasticsearch indexou documentos no índice invertido e funciona em correspondência de tokens (que pode ser facilmente personalizado para atender aos requisitos de negócios), portanto, super rápido na pesquisa. Redis e MongoDB não estão tendo essa estrutura internamente e não devem ser usados para este caso de uso. Você não deve ter dúvidas sobre a escolha do Elasticsearch para implementar o Autocomplete.