sql >> Databáze >  >> NoSQL >> MongoDB

Automatické doplňování s java, Redis, Elastic Search, Mongo

Je to kritický případ použití pro vyhledávání a MongoDB a Redis jsou perfektní pro vyhledávání založené na klíčích a nepoužívají se pro účely Vyhledávání, zatímco Elasticsearch je distribuovaný vyhledávač vytvořený speciálně pro takový případ použití.

Před výběrem systému byste měli vědět, jak vaše funkce interně funguje, a měli byste zvážit její výběr.

Nefunkční požadavky na vaši funkci

  1. Jaký by byl celkový počet vyhledávacích dotazů za sekundu (QPS)?
  2. Jak často byste aktualizovali dokumenty (tj. jména ve vašem příkladu).
  3. Co je SLA za jmény aktualizována a objevují se ve výsledcích vyhledávání?
  4. SLA pro vaše výsledky vyhledávání.

Některé funkční požadavky.

  1. Jak by mělo vypadat automatické doplňování, hledání předpon a vkládání jmen?
  2. Minimální počet znaků, které by měl uživatel napsat, než se jim zobrazí výsledky automatického doplňování.
  3. Jak často se mohou výše uvedené požadavky měnit.

Elasticsearch indexované dokumenty v obráceném indexu a pracovní tokeny se shodují (které lze snadno přizpůsobit tak, aby vyhovovaly obchodním požadavkům), a proto je vyhledávání super rychlé. Redis a MongoDB tuto strukturu interně nemají a neměly by se pro tento případ použití používat. Neměli byste mít žádné pochybnosti o tom, že k implementaci automatického doplňování zvolíte Elasticsearch nad těmito možnostmi.



  1. Sdílené relace mezi aplikacemi uzlů?

  2. Mongodb PHP - celá čísla s desetinnými místy

  3. Jak zachytit výjimku při vytváření instance MongoClient

  4. Získání adresy Redis Master z Sentinel C#