首页  >  文章  >  后端开发  >  如何通过多个实体绑定优化ElasticSearch索引结构?

如何通过多个实体绑定优化ElasticSearch索引结构?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-29 22:58:29885浏览

How to Optimize ElasticSearch Index Structure with Multiple Entity Bindings?

如何使用多个实体绑定配置 ElasticSearch 索引结构

背景

经常将 ElasticSearch (ES) 与遗留应用程序集成由于数据结构和索引要求的差异带来了挑战。对于复杂的关系模式,非规范化数据和展平实体可以提高性能并简化查询。

问题:

如何展平具有多个实体绑定(n :m 关系)以在 ES 中实现最佳索引?

解决方案:

1.反规范化数据:

创建包含所有相关数据的产品文档,包括嵌入的相关实体数组。下面是一个示例架构:

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

2。映射类型:

配置映射类型以匹配新架构:

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"
        }
      }
    }
  }
}

3. SQL 查询:

使用连接相关实体并连接标志标题的查询从数据库检索数据:

以上是如何通过多个实体绑定优化ElasticSearch索引结构?的详细内容。更多信息请关注PHP中文网其他相关文章!

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