如何在关系数据库中使用Elasticsearch

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在关系数据库中使用Elasticsearch相关的知识,希望对你有一定的参考价值。

我有两个表公司和经理,关系是公司所属的经理。

公司表包含

  • ID
  • 那么
  • 电话
  • 地址
  • MANAGER_ID

和管理者包含

  • ID
  • 那么
  • 地址

如何在这里创建弹性搜索索引?

我需要搜索公司的详细信息

  1. 公司名
  2. 经理姓名
答案

您需要对数据进行反规范化以将其存储在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 之间的数据同

Elasticsearch:如何在 Django 中使用 Elasticsearch

Elasticsearch:如何在 Django 中使用 Elasticsearch