首页 >数据库 >mysql教程 >如何为多个实体关系构建Elasticsearch索引?

如何为多个实体关系构建Elasticsearch索引?

Susan Sarandon
Susan Sarandon原创
2024-11-29 16:32:10825浏览

How to Structure an Elasticsearch Index for Multiple Entity Relationships?

如何使用多个实体绑定构建 ElasticSearch 索引

简介

集成 ElasticSearch (ES )到现有应用程序中经常会提出如何在 ES 索引中复制复杂数据库结构的问题。本文解决了处理多个实体绑定时配置索引结构的具体挑战。

数据库结构

考虑电子商务应用程序中的以下数据库结构:

  • 产品(id、标题、价格)
  • 标志(id, title)
  • FlagsProducts(包含 ProductId、flagId、externalId 的数据透视表)

扁平化结构

优化查询和易用性,建议通过展平结构来对数据进行非规范化。这涉及创建包含其他表中所有相关信息的产品文档:

{
"id": "00c8234d71c4e94f725cd432ebc04",
"title": "Alpha",
"price": 589.0,
"flags": ["Sellout", "Top Product"]
}

ES 产品映射

相应的 ES 产品映射类型为:

PUT products
{
"mappings": {
"product": {
"properties": {
"id": {
"type": "string",
"index": "not_analyzed"
},
"title": {
"type": "string"
},
"price": {
"type": "double",
"null_value": 0.0
},
"flags": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}

Logstash SQL查询

要填充 ES 索引,Logstash JDBC 输入可以与以下查询一起使用:

以上是如何为多个实体关系构建Elasticsearch索引?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn