elasticsearch - 是否有弹性搜索标准解决方案来加载最近更改的关系数据
问题描述
我有以下表格,其中包含数百万条记录并且它们经常更改有没有一种方法可以在弹性搜索中加载该数据(以实现最终一致性),并在最初和增量的情况下使用 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”的手机号码将传播到弹性搜索数据库?
解决方案
您的应用程序中应该有一个后台作业,它从 DB 中提取数据(当然,您知道 DB 何时发生变化),并根据您的需要(过滤、按摩)在 Elasticsearch 索引中重新编制索引。
或者您可以使用带 JDBC 的 logstash 来保持数据同步,请参阅弹性博客了解如何做到这一点。
第一个是灵活且非开箱即用的解决方案,而第二个是开箱即用的解决方案,这两种方法各有利弊,并选择最适合您的用例的方法。
推荐阅读
- c# - IdentityUI 无法加载静态文件
- java - 无法在 Android Studio 中将 Java 代码转换为 Kotlin
- asp.net - Firefox 完全忽略 Access-Control-Allow-Origin 标头
- delphi - 复制时如何保留控件之间的连接?
- django - Django UpdateView 用户验证不起作用
- elasticsearch - 动态设置fluentD弹性搜索索引
- xml - 如何在使用 STRIP_OUTER_ELEMENT = TRUE 时获取大型 xml 雪花中的 xml 标头标记数据
- java - 父抽象类的构造
- kubernetes - kubectl 允许用户只复制文件进出 pod
- c# - 查找字符串中最常见的 5 个单词