ElasticSearch学习之数据建模

Update By Query

_update_by_query
适用场景:索引mappings有更新,通过使用_update_by_query可以查询到mappings更新之前的文档。

POST /blogs/_update_by_query
{
}
reindex

ES不允许对已有的索引mappings进行更改,可以重新创建一个索引
然后用reindex操作将原有的索引数据导入都新的索引中。reindex可以将一个索引拷贝到另一个索引中。

POST  _reindex
{
  "source": {
    "index": "blogs"
  },
  "dest": {
    "index": "blogs_fix",
    "version_type": "internal"
  }
}
数据建模

数据建模就是创建数据模型的过程
过程:
字段类型–>是否要搜索分词–>是否要聚合及排序–>是否要额外存储
字段类型

  • text
    • 用于全文本字段,文本不会被Analyzer分词
    • 默认不支持聚合和排序,需要将fielddata设置为true
  • keyword
    • 用于ID,枚举及不需要分词的文本
    • 适用于Filter精确匹配,Sorting和Aggregations
  • 设置多字段类型
    • 默认会为文本类型设置成text,并且设置一个keyword的子字段
    • 在处理人类语言时,通过增加英文,拼音和标准分词器,提高搜索结构

检索

  • 如不需要检索,排序和聚合分析
    • Enable设置成false
  • 如不需要检索
    • index设置fasle

排序和聚合

  • 如不需要检索,排序和聚合分析
    • Enable设置成false
  • 如不需要排序或者聚合分析功能
    • doc_values/fielddata设置成false
  • 更新频繁,聚合查询频繁的keyword类型的字段
    • 推荐将eager_global_ordinals设置为true,利用缓存

额外的存储

  • 是否需要专门存储当前字段数据
    • store设置成true,可以存储该字段的原始内容
    • 一般结合_source的enable为false时候使用
  • Disable_source:节约磁盘,适用于指标型数据
    • 建议先考虑增加压缩比
    • 无法看到_source字段,无法做reindex,无法做update

建模建议

  • 避免过多字段,默认最大字段数是1000
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值