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

问题描述 投票:0回答:1

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

公司表包含

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

和管理者包含

  • ID
  • 那么
  • 地址

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

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

  1. 公司名
  2. 经理姓名
node.js postgresql elasticsearch nested elasticsearch-5
1个回答
0
投票

您需要对数据进行反规范化以将其存储在elasticsearch中。显然,你也可以在elasticsearch中使用父子关系,但是我没有看到这一点,因为你需要搜索公司/经理的名字。您可以将它存储在公司索引中,如下所示:

Companies/company_id
{
   "name": <company_name>,
   "phone": <phone>
   ..,
   "manager_name": <manager_name>,
   ...
}

您可以使用company_id作为文档的elastic_id,因为它更容易更新。因此,您应该能够编写一个脚本,从您的数据库中读取公司(显然加载了必要的关系)并将它们同步到elasticsearch。您可以通过挂钩数据库保存或通过cron作业将更改传播到公司/经理。

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.