sql >> Database >  >> NoSQL >> MongoDB

Automatisch aanvullen met java, Redis, Elastic Search, Mongo

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

  1. Wat zou het totale aantal zoekopdrachten per seconde (QPS) zijn?
  2. Hoe vaak zou u de documenten bijwerken (dwz namen in uw voorbeeld).
  3. Wat is de SLA achter namen in bijgewerkt en komt in het zoekresultaat?
  4. SLA voor uw zoekresultaten.

Enkele functionele vereisten.

  1. Hoe automatisch aanvullen eruit moet zien, voorvoegsel, tussenvoegsel zoeken op namen?
  2. Minimaal hoeveel tekens de gebruiker moet typen voordat hij de resultaten voor automatisch aanvullen laat zien.
  3. 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.



  1. Uw clustertopologie visualiseren in ClusterControl

  2. Apache Spark komt naar Apache HBase met HBase-Spark-module

  3. Mongoose, CastError:Cast to Array mislukt voor waarde bij het opslaan van een model dat een model bevat

  4. Wijzig de volgorde waarin eigenschappen worden weergegeven in MongoDB