具有多个实体绑定的 ElasticSearch 索引结构
了解优化 ElasticSearch (ES) 集成的数据库结构的必要性,探索如何优化数据库结构至关重要将复杂的关系数据建模为扁平化的 ES 索引结构。
扁平结构中的多个实体绑定
非规范化是优化数据存储的关键技术。例如,不要通过数据透视表维护产品和标志之间的 N:M 关系,而是考虑创建一个平面 ES 索引,其中每个产品文档都包含关联标志的数组。
产品文档结构
扁平化产品文档将类似于以下结构:
{ "id": "00c8234d71c4e94f725cd432ebc04", "title": "Alpha", "price": 589.0, "flags": ["Sellout", "Top Product"] }
ES 索引的产品映射类型
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" } } } } }
使用 SQL 查询提取数据
要从数据库中获取必要的数据以进行 Logstash 处理,需要使用 SQL查询可以使用如下:
以上是如何将复杂的关系数据建模为扁平化的 ElasticSearch 索引结构?的详细内容。更多信息请关注PHP中文网其他相关文章!