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類型,支持范圍查詢,建議到精確到分鍾,會提高查詢效率

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM