¿Elasticsearch replicación de otros datos del sistema?

Supongamos que quiero usar elasticsearch para implementar una búsqueda genérica en un sitio web. Se espera que la barra de búsqueda superior encuentre recursos de todo tipo en todo el sitio. Documentos seguros (cargados / indexados a través de tika) pero también cosas como clientes, cuentas, otras personas, etc.

Por razones arquitectónicas, la mayoría de las cosas que no son documentos (clientes, cuentas) existirán en una base de datos relacional.

Al implementar esta búsqueda, la opción # 1 sería crear versiones de documentos de todo, y luego usar elasticsearch para ejecutar todos los aspectos de la búsqueda, sin depender en absoluto de la base de datos relacional para encontrar diferentes tipos de objetos.

La opción n. ° 2 sería utilizar Elasticsearch solo para indexar los documentos, lo que significaría que para una función general de "búsqueda en el sitio", tendría que agotar múltiples búsquedas en múltiples sistemas, luego agregar los resultados antes de devolverlos.

La opción n. ° 1 parece muy superior, pero la desventaja es que requiere que la búsqueda elástica, en esencia, tenga una copia de muchas cosas en la base de datos relacional de producción, además de que esas copias se mantengan frescas a medida que cambian las cosas.

¿Cuál es la mejor opción para mantener estas tiendas sincronizadas, y estoy en lo cierto al pensar que para la búsqueda general, la opción # 1 es superior? ¿Hay una opción # 3?

Respuestas a la pregunta(1)

Su respuesta a la pregunta