¿Por qué y para qué la mayoría de los servicios de citas usan Elasticsearch?

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.

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.