• ES设计及规范


     

    一、版本

     

    推荐6.7或者7.4版本

     

    二、配置

     

    节点:5节点(5个主分片、5个备分片)

     

    大小:每个节点500G(原因:目前存量不超过30G,一年超过50G,该资源可支撑3年以上)

     

     

    三、索引、映射设计规范

     

    1、文档自动映射关掉:即"dynamic":"false"

     

                  true(默认):动态映射,会给陌生字段自定义mapping(即会插入新的字段,且能根据新的字段索引);

     

                  false:静态映射,陌生字段能插入,但是不会给陌生字段自定义mapping(即能插入新字段,不能根据新字段索引);

     

                  strict:严格模式,不允许陌生字段插入              

     

    2、ES索引自动刷新默认是1s,实时刷新比1s刷新性能下降10倍左右
    3、ES在使用时尽量使用的别名

     

          当使用别名时候可以支持字段名或者字段类型的修改,具体方案如下:

     

          原索引:old_index  

     

          给原索引创建一个别名:POST _aliases { "actions": [ { "add": { "index": "old_index", "alias": "old_index_alias" } } ] }

     

          创建新的索引:new_index

     

          通过_reindex将old_index的数据同步到new_index上面

     

         再将别名映射到新的索引

     


    4、_id在插入数据时候使用业务主键(比如:动态ID+评论ID+评论类型)
    5、数据迁移尽量使用dataworks,比自己写代码快的多
    6、ID(比如动态ID)一般建议为keyword类型(查询比long类型快很多,但是不支持比较大小和范围查询),如果想要做范围查询或者比较大小,可再额外增加一个字段,字段类型定义为Long类型的

     

    7、开放索引的只读设置:

     

               PUT _settings { "index": { "blocks": { "read_only_allow_delete": "false" } } }

     

    8、批量写ES可以抗住1w+QPS没问题'

     

    9、字段类型设计原则:

     

         1)字段建议使用keyword类型,查询快,支持排序

     

         2)content字段要用text字段,支持分词,不支持排序

     

         3)时间使用long类型,支持范围查询,建议到精确到分钟,会提高查询效率

     

     

     

     

  • 相关阅读:
    网页打开qq
    正则表达式
    微信小程序 如何使用globalData
    微信小程序中常见的typeof cb == “function” && cb(that.globalData.userInfo)
    MongoDB
    Elasticsearch学习
    Kafka学习之路 (一)Kafka的简介
    mybatis sql语句中转义字符
    定时任务
    mybatis insert into 返回id,useGeneratedKeys,keyColumn,keyProperty,parameterType
  • 原文地址:https://www.cnblogs.com/wzk-0000/p/13214912.html
Copyright © 2020-2023  润新知