sql >> Base de Datos >  >> NoSQL >> MongoDB

Autocompletar con Java, Redis, Elastic Search, Mongo

Es un caso de uso de búsqueda crítico, y MongoDB y Redis son perfectos para búsquedas basadas en claves y no para fines de búsqueda, mientras que Elasticsearch es un motor de búsqueda distribuido, creado específicamente para tal caso de uso.

Antes de elegir el sistema, debe saber cómo funciona internamente su función y, a continuación, la consideración para seleccionarla.

Requisitos no funcionales para su función

  1. ¿Cuál sería el número total de consultas de búsqueda por segundo (QPS)?
  2. Con qué frecuencia actualizaría los documentos (es decir, los nombres en su ejemplo).
  3. ¿Cuál es el SLA después de que los nombres se actualicen y aparezcan en el resultado de la búsqueda?
  4. SLA para sus resultados de búsqueda.

Algunos requisitos funcionales.

  1. ¿Cómo debería ser el autocompletado, prefijo, búsqueda de infijo en nombres?
  2. La cantidad mínima de caracteres que el usuario debe escribir antes de mostrarles los resultados de autocompletar.
  3. Con qué frecuencia pueden cambiar los requisitos anteriores.

Elasticsearch indexó los documentos en el índice invertido y funciona en la coincidencia de tokens (que se puede personalizar fácilmente para adaptarse a los requisitos comerciales), por lo tanto, es muy rápido en la búsqueda. Redis y MongoDB no tienen esta estructura internamente y no deben usarse para este caso de uso. No debe tener ninguna duda sobre elegir Elasticsearch sobre estos para implementar Autocompletar.