elasticsearch 其他系统数据的Elasticsearch复制?
假设我想使用elasticsearch在网站上实现通用搜索。顶部的搜索栏可以在整个网站上找到各种各样的资源。当然是文档(通过tika上传/索引),但也包括客户、账户、其他人等 出于体系结构的原因,大多数非文档内容(客户机、帐户)将存在于关系数据库中 在实现此搜索时,选项1是创建所有内容的文档版本,然后使用elasticsearch运行搜索的所有方面,而不是依赖关系数据库来查找不同类型的对象 选项2将仅使用elasticsearch为文档编制索引,这意味着对于一般的“站点搜索”功能,您必须将多个搜索分发给多个系统,然后在返回结果之前聚合结果 选项#1似乎优越得多,但缺点是它要求弹性搜索本质上拥有生产关系数据库中大量内容的副本,而且这些副本随着内容的变化而保持新鲜elasticsearch 其他系统数据的Elasticsearch复制?,elasticsearch,architecture,elasticsearch,Architecture,假设我想使用elasticsearch在网站上实现通用搜索。顶部的搜索栏可以在整个网站上找到各种各样的资源。当然是文档(通过tika上传/索引),但也包括客户、账户、其他人等 出于体系结构的原因,大多数非文档内容(客户机、帐户)将存在于关系数据库中 在实现此搜索时,选项1是创建所有内容的文档版本,然后使用elasticsearch运行搜索的所有方面,而不是依赖关系数据库来查找不同类型的对象 选项2将仅使用elasticsearch为文档编制索引,这意味着对于一般的“站点搜索”功能,您必须将多个搜
保持这些商店同步的最佳选项是什么?我认为对于一般搜索,选项1更优越,这是正确的吗?是否有选项#3?您几乎列出了在多个数据存储中搜索时的两个主要选项,即在一个中央数据存储中搜索(选项#1)或在所有数据存储中搜索并聚合结果(选项#2) 尽管选项2有两个主要缺点,但这两个选项都可行:
- 使用
- 使用工具
谢谢-直觉上我认为选项1更好。我缺少的是,我没有意识到像Logstash JDBC input这样的自动同步工具,这是我缺少的一个关键部分,它使选项1比我想象的要容易得多。我可以处理传播删除操作,最终这只意味着传播更改所需的工作比我想象的要少。谢谢。@Val..是否有框架为mysql bin日志提供拦截器,这些拦截器可以根据binlog中的事件执行java代码,并将数据推送到elasticsearch中?@Prannoymital看看这个答案是否有帮助: