首页 > 解决方案 > 是否有弹性搜索标准解决方案来加载最近更改的关系数据

问题描述

我有以下表格,其中包含数百万条记录并且它们经常更改有没有一种方法可以在弹性搜索中加载该数据(以实现最终一致性),并在最初和增量的情况下使用 spring boot?表格:员工角色联系方式(电话/电子邮件/手机)渠道部门状态地址

这里的文件将如下所示

        {
        "id":1,
        "name": "tom john",
        "Contacts":[
                    {
                    "mobile":123,
                      "type":"MOBILE"
        
                    },
                    {
                "phone":223333
               "type":"PHONE"
        
                }
            ]
        "Address":[
            {
              "city": "New york"
              "ZIP": 12343
              "type":"PERMANENT"
            },
            {
              "city": "New york"
              "ZIP": 12343
              "type":"TEMPORARY"

            }
        ]   
        }
        .. simillar data for ROLE,DEPT etc tables
]

我如何确保 ev.g. 在关系数据库中更改的“tom john”的手机号码将传播到弹性搜索数据库?

标签: elasticsearch

解决方案


您的应用程序中应该有一个后台作业,它从 DB 中提取数据(当然,您知道 DB 何时发生变化),并根据您的需要(过滤、按摩)在 Elasticsearch 索引中重新编制索引。

或者您可以使用带 JDBC 的 logstash 来保持数据同步,请参阅弹性博客了解如何做到这一点。

第一个是灵活且非开箱即用的解决方案,而第二个是开箱即用的解决方案,这两种方法各有利弊,并选择最适合您的用例的方法。


推荐阅读