MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Автоматично довършване с java, Redis, Elastic Search, Mongo

Това е критичен случай на използване при търсене и MongoDB и Redis са идеални за търсене, базирано на ключове, а не за целите на търсенето, докато Elasticsearch е разпределена търсачка, създадена специално за такъв случай на употреба.

Преди да изберете системата, трябва да знаете как вашата функция работи вътрешно и по-долу съображенията за избора й.

Нефункционални изисквания за вашата функция

  1. Какъв би бил общият брой заявки за търсене в секунда (QPS)?
  2. Колко често бихте актуализирали документите (т.е. имената във вашия пример).
  3. Какво е SLA след имена в актуализирани и идващи в резултатите от търсенето?
  4. SLA за резултатите от търсенето ви.

Някои функционални изисквания.

  1. Как трябва да изглежда автоматичното довършване, търсене с префикс, инфикс на имена?
  2. Минимален брой знака, които потребителят трябва да въведе, преди да му покаже резултатите за автоматично довършване.
  3. Колко често могат да се променят горните изисквания.

Elasticsearch индексира документи в обърнатия индекс и съвпада с работните токени (което може лесно да се персонализира, за да отговаря на изискванията на бизнеса), следователно супер бързо при търсене. Redis и MongoDB нямат тази структура вътрешно и не трябва да се използват за този случай на употреба. Не трябва да имате никакво съмнение относно избора на Elasticsearch вместо тези, за да приложите автоматично довършване.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Населяване на мангусти срещу гнездене на обекти

  2. Не мога да намеря документи, търсещи по ObjectId с помощта на Mongoose

  3. Метеор:неочакван изходен код на монго 100

  4. Проследяване на производителността на MongoDB?

  5. Вмъкване на елемент във вложени масиви в MongoDB