È un caso d'uso di ricerca critico e MongoDB e Redis sono perfetti per ricerche basate su chiavi e non per scopi di ricerca, mentre Elasticsearch è un motore di ricerca distribuito, creato appositamente per tale caso d'uso.
Prima di scegliere il sistema, dovresti sapere come funziona la tua funzione internamente e sotto la considerazione per selezionarla.
Requisiti non funzionali per la tua funzione
- Quale sarebbe il numero totale di query di ricerca al secondo (QPS)?
- Quanto aggiorneresti i documenti (ad esempio, i nomi nel tuo esempio).
- Qual è lo SLA dopo i nomi aggiornati e in arrivo nei risultati della ricerca?
- SLA per i tuoi risultati di ricerca.
Alcuni requisiti funzionali.
- Come dovrebbe apparire il completamento automatico, prefisso, ricerca infissa sui nomi?
- Minimo il numero di caratteri che l'utente deve digitare prima di mostrare loro i risultati del completamento automatico.
- Con quale frequenza possono cambiare i requisiti di cui sopra.
I documenti indicizzati di Elasticsearch nell'indice invertito e i token di lavoro corrispondono (che possono essere facilmente personalizzati per soddisfare le esigenze aziendali), quindi super veloce nella ricerca. Redis e MongoDB non hanno questa struttura internamente e non dovrebbero essere usati per questo caso d'uso. Non dovresti avere alcun dubbio sulla scelta di Elasticsearch al posto di questi per implementare il completamento automatico.