如何使用多个实体绑定构建 ElasticSearch 索引
简介
集成 ElasticSearch (ES )到现有应用程序中经常会提出如何在 ES 索引中复制复杂数据库结构的问题。本文解决了处理多个实体绑定时配置索引结构的具体挑战。
数据库结构
考虑电子商务应用程序中的以下数据库结构:
扁平化结构
优化查询和易用性,建议通过展平结构来对数据进行非规范化。这涉及创建包含其他表中所有相关信息的产品文档:
{ "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中文网其他相关文章!