Het is een kritieke use-case voor zoeken, en MongoDB en Redis zijn perfect voor op sleutels gebaseerde zoekopdrachten en niet voor zoekdoeleinden, terwijl Elasticsearch een gedistribueerde zoekmachine is, speciaal gebouwd voor een dergelijke use-case.
Voordat u het systeem kiest, moet u weten hoe uw functie intern werkt en hieronder de overwegingen om het te selecteren.
Niet-functionele vereisten voor uw functie
- Wat zou het totale aantal zoekopdrachten per seconde (QPS) zijn?
- Hoe vaak zou u de documenten bijwerken (dwz namen in uw voorbeeld).
- Wat is de SLA achter namen in bijgewerkt en komt in het zoekresultaat?
- SLA voor uw zoekresultaten.
Enkele functionele vereisten.
- Hoe automatisch aanvullen eruit moet zien, voorvoegsel, tussenvoegsel zoeken op namen?
- Minimaal hoeveel tekens de gebruiker moet typen voordat hij de resultaten voor automatisch aanvullen laat zien.
- Hoe vaak kunnen de bovenstaande vereisten veranderen.
Elasticsearch-geïndexeerde documenten in de omgekeerde index en werkt-onkens komen overeen (die eenvoudig kunnen worden aangepast aan zakelijke vereisten), dus supersnel bij het zoeken. Redis en MongoDB hebben deze structuur niet intern en zouden niet voor deze use-case moeten worden gebruikt. U hoeft er niet aan te twijfelen om Elasticsearch te kiezen in plaats van deze om Autocomplete te implementeren.