我正在使用jdbc河来同步Elasticsearch和数据库。已知的问题是,从数据库中删除的行保留在ES中,jdbc河插件不能解决这个问题。 jdbc river的作者提出了解决问题的方法:Elasticsearch数据库同步
一个好方法是窗口索引。每个时间范围(可能每天或每周一次)为河流创建一个新索引,并添加到别名中。过了一段时间后,旧指数将会下跌。这种维护类似于> logstash索引,但它不在河流范围内。
我的问题是,这是什么意思准确的方式?
可以说我有表中的数据库调用Table有600万行,我试试如下:
- 创建河叫river1,与指数1。 index1包含table1的索引 行。索引1被添加到别名。
- table1中的某些行在白天被删除,因此每天晚上我会创建另一条名为river2的河流,其索引为2,其中 仅包含table1中现在存在的内容。
- 从别名中删除旧的索引1并将索引2添加到别名。
- 删除旧的index1。
这是正确的方法吗?