Elasticsearch replicação de outros dados do sistema?

Suponha que eu queira usar o elasticsearch para implementar uma pesquisa genérica em um site. Espera-se que a barra de pesquisa superior encontre recursos de todos os tipos diferentes no site. Documentos com certeza (enviados / indexados via tika), mas também itens como clientes, contas, outras pessoas etc.

Por motivos de arquitetura, a maioria das coisas que não são documentos (clientes, contas) existirão em um banco de dados relacional.

Ao implementar essa pesquisa, a opção 1 seria criar versões de documentos de tudo e, em seguida, basta usar elasticsearch para executar todos os aspectos da pesquisa, sem depender do banco de dados relacional para encontrar diferentes tipos de objetos.

A opção 2 seria usar a elasticsearch apenas para indexar os documentos, o que significaria para um recurso geral de "pesquisa no site"; você teria que fazer buscas múltiplas em vários sistemas e agregar os resultados antes de devolvê-los.

A opção 1 parece muito superior, mas a desvantagem é que exige que a pesquisa elástica tenha uma cópia de muitas coisas no banco de dados relacional de produção, além de que essas cópias sejam mantidas atualizadas à medida que as coisas mudam.

Qual é a melhor opção para manter essas lojas sincronizadas e estou correto ao pensar que, para a pesquisa geral, a opção 1 é superior? Existe uma opção # 3?

questionAnswers(1)

yourAnswerToTheQuestion