Sí, en función del caso de uso.
Cuando estaba trabajando en el algoritmo de coincidencia en OneGoodCrush – Aplicación de citas para LGBT Singles, usamos ElasticSearch sobre Postgres. Déjame decirte por qué.
Teníamos todos los datos de nuestros clientes almacenados relacionalmente en nuestra base de datos de Postgres. Inicialmente, nuestro algoritmo de emparejamiento tardó alrededor de 5 días en ejecutarse eficazmente en Postgres. Añadiré que un algoritmo de comparación LGBT es N * N más complejo que un algoritmo directo que en su mayor parte es binario. En lugar de masculino y femenino, tuvimos Preoperatorio masculino, transexual masculino, Preoperatorio masculino transexual, Preoperador femenino femenino transexual y Pre operatorio femenino transgenero. Luego imagine que todos esos pueden estar interesados en cualquier número del subconjunto. Que por supuesto puede o no estar interesado en ellos.
Puedes ver cómo esto se vuelve increíblemente complejo muy rápidamente.
- ¿Es Tinder solo una aplicación de citas?
- ¿Se ha convertido LinkedIn en un sitio de citas profesionales?
- ¿Tienes una idea de acercarte a una chica que nunca conociste en Instagram o Facebook?
- Cómo cambiar mi edad en Tinder
- ¿Por qué Tinder despidió al 10% de su personal?
Con un conjunto de usuarios de alrededor de 250,000, Postgres tomó alrededor de 5 días. Cuando configuramos el trabajo para exportar a ElasticSearch y ejecutamos el algoritmo de coincidencia (que ES también puede hacer fácilmente la distancia de ubicación), el algoritmo de coincidencia completo tomó 5 ms para ejecutarse.
De 5 días a 5 milisegundos.
Eso es un orden de 6 magnitudes (días, horas, minutos, segundos, décimas de segundo, cientos de segundos) más rápido. ¿Ojalá esté haciendo mis matemáticas bien …?
La velocidad es la razón principal. Obviamente, también hay otros beneficios, pero en su mayoría se deben al aumento de la velocidad.