Elasticsearch数据建模

本文探讨Elasticsearch7.x的数据建模,包括理解数据建模概念、字段建模策略如选择合适字段类型、处理关联关系以及考虑搜索、聚合、排序和存储性能。建议关闭动态映射以优化集群性能,并根据业务需求谨慎处理null值和关联关系。
摘要由CSDN通过智能技术生成

本文基于Elasticsearch7.x

前置知识:

Elasticsearch Mapping

Elasticsearch 如何处理存在关联关系的数据?

什么是数据建模(Data Modeling)?

数据建模是创建数据模型的过程, 数据模型是对真实世界进行抽象描述的一种工具和方法, 实现对现实世界的映射.

在实际开发中, 我们的数据都是存储在MySQL中, Elasticsearch数据建模就是根据业务场景建立一个与MySQL表结构对应的Index Mapping结构, 然后将MySQL中的数据迁移到Elasticsearch中.

Mappings 设置非常重要, 需要从两个维度进行考虑:

  • 功能:搜索, 聚合, 排序
  • 性能:存储的开销, 内存的开销, 搜索的性能

如何对字段进行建模?

对字段进行建模时, 我们需要仔细考虑以下四点.

  • 字段类型
  • 是否要搜索及分词
  • 是否要聚合及排序
  • 是否要额外的存储

字段类型

(1) text和keyword

  • text类型用于全文本字段, 文本会被分词. 默认不支持聚合和排序, 只有将fielddata设为true才能支持聚合和排序, 但不推荐使用.
  • keyword类型用于id, 枚举, 或不需要被分词的文本. 适用于filter搜索, 排序和聚合.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值