sql >> Database teknologi >  >> NoSQL >> MongoDB

Autofuldførelse med java, Redis, Elastic Search, Mongo

Det er et kritisk brugstilfælde for søgning, og MongoDB og Redis er perfekte til nøglebaserede opslag og ikke til søgeformål, mens Elasticsearch er en distribueret søgemaskine, bygget specifikt til sådanne use-case.

Før du vælger systemet, bør du vide, hvordan din funktion fungerer internt, og under overvejelse for at vælge den.

Ikke-funktionelle krav til din funktion

  1. Hvad ville være det samlede antal søgeforespørgsler pr. sekund (QPS)?
  2. Hvor ofte vil du opdatere dokumenterne (dvs. navne i dit eksempel).
  3. Hvad er SLA efter navne i opdateret og kommer i søgeresultatet?
  4. SLA for dine søgeresultater.

Nogle funktionelle krav.

  1. Hvordan skal autofuldførelse se ud, præfiks, infikssøgning på navne?
  2. Minimum, hvor mange tegn brugeren skal skrive, før han viser dem autofuldførelsesresultaterne.
  3. Hvor ofte kan ovenstående krav ændres.

Elasticsearch indekserede dokumenter i det omvendte indeks og fungerer på tokens match (som nemt kan tilpasses til at passe til forretningskrav), og derfor superhurtig i søgning. Redis og MongoDB har ikke denne struktur internt og bør ikke bruges til denne brugssag. Du skal ikke være i tvivl om at vælge Elasticsearch frem for disse for at implementere Autofuldførelse.



  1. Mongodb opdatering dybt indlejret underdokument

  2. MongoDB returnerer True, hvis dokumentet findes

  3. Mongoose befolker efter lagring

  4. Redis:Sorter og hent n Neighbor Keys