【问题标题】:How to work Elasticsearch in relational database如何在关系数据库中使用 Elasticsearch
【发布时间】:2018-08-12 22:28:53
【问题描述】:
我有两张桌子
company 和 managers 关系为 company belongsTo managers强>。
公司表包含
和经理包含
这里如何创建elasticsearch索引??
我需要从
搜索公司详细信息
- 公司名称
- 经理姓名
【问题讨论】:
标签:
node.js
postgresql
elasticsearch
nested
elasticsearch-5
【解决方案1】:
您需要对数据进行反规范化以将其存储在 elasticsearch 中。您显然也可以在 elasticsearch 中使用父子关系,但我在这里看不到重点,因为您需要搜索公司/经理姓名。
您可以将其存储在公司索引中,如下所示:
Companies/company_id
{
"name": <company_name>,
"phone": <phone>
..,
"manager_name": <manager_name>,
...
}
您可以使用 company_id 作为文档的 elastic_id,因为这样更容易更新它们。
因此,您应该能够编写一个脚本,从您的数据库中读取公司(显然已加载必要的关系)并将它们同步到 elasticsearch。您可以通过挂钩到您的数据库保存或通过 cron 作业将更改传播给公司/经理。
希望这会有所帮助。