Това е критичен случай на използване при търсене и MongoDB и Redis са идеални за търсене, базирано на ключове, а не за целите на търсенето, докато Elasticsearch е разпределена търсачка, създадена специално за такъв случай на употреба.
Преди да изберете системата, трябва да знаете как вашата функция работи вътрешно и по-долу съображенията за избора й.
Нефункционални изисквания за вашата функция
- Какъв би бил общият брой заявки за търсене в секунда (QPS)?
- Колко често бихте актуализирали документите (т.е. имената във вашия пример).
- Какво е SLA след имена в актуализирани и идващи в резултатите от търсенето?
- SLA за резултатите от търсенето ви.
Някои функционални изисквания.
- Как трябва да изглежда автоматичното довършване, търсене с префикс, инфикс на имена?
- Минимален брой знака, които потребителят трябва да въведе, преди да му покаже резултатите за автоматично довършване.
- Колко често могат да се променят горните изисквания.
Elasticsearch индексира документи в обърнатия индекс и съвпада с работните токени (което може лесно да се персонализира, за да отговаря на изискванията на бизнеса), следователно супер бързо при търсене. Redis и MongoDB нямат тази структура вътрешно и не трябва да се използват за този случай на употреба. Не трябва да имате никакво съмнение относно избора на Elasticsearch вместо тези, за да приложите автоматично довършване.