如何在关系数据库中使用Elasticsearch
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在关系数据库中使用Elasticsearch相关的知识,希望对你有一定的参考价值。
我有两个表公司和经理,关系是公司所属的经理。
公司表包含
- ID
- 那么
- 电话
- 地址
- MANAGER_ID
和管理者包含
- ID
- 那么
- 地址
如何在这里创建弹性搜索索引?
我需要搜索公司的详细信息
- 公司名
- 经理姓名
答案
您需要对数据进行反规范化以将其存储在elasticsearch中。显然,你也可以在elasticsearch中使用父子关系,但是我没有看到这一点,因为你需要搜索公司/经理的名字。您可以将它存储在公司索引中,如下所示:
Companies/company_id
{
"name": <company_name>,
"phone": <phone>
..,
"manager_name": <manager_name>,
...
}
您可以使用company_id作为文档的elastic_id,因为它更容易更新。因此,您应该能够编写一个脚本,从您的数据库中读取公司(显然加载了必要的关系)并将它们同步到elasticsearch。您可以通过挂钩数据库保存或通过cron作业将更改传播到公司/经理。
希望这可以帮助。
以上是关于如何在关系数据库中使用Elasticsearch的主要内容,如果未能解决你的问题,请参考以下文章
Elasticsearch:将关系数据库中的数据提取到 Elasticsearch 集群中
使用 Logstash 和 JDBC 确保 Elasticsearch 与关系型数据库保持同步
ES 译文之如何使用 Logstash 实现关系型数据库与 ElasticSearch 之间的数据同步
ES 译文之如何使用 Logstash 实现关系型数据库与 ElasticSearch 之间的数据同