es~存儲部分字段


es存儲兩種數據

  • es中存儲的數據分為兩種,原始文檔和索引文檔(倒排索引),這兩個內容都可以分別配置的。

  • 我們的一個查詢請求,會通過分詞器將你的條件進行分詞,然后去倒排索引表中查詢目標值

  • 當然,如果你的es設置了分片,並且是一個多節點的集群環境,那他將在這些分片中進行檢索,最后再合並

  • 每個分片都有一個主分片,同時也有副本,當然你把相同分片的主和副本做到一台服務器上,意義不大,副本的意思就是當主分片所在的服務器宕機之后,另一台服務器的對應副本分片可以提升為主分片,對外提供服務

下面介紹存儲部分字段

有時,我們文檔中的字段可能只是一個檢索條件,它本身的信息對外界意義不大,所以這種字段是可以不存的,這可以節省一些空間,下面進行了相關知識的總結:

  1. es中存儲的數據分為兩種,原始文檔和索引文檔(倒排索引),這兩個內容都可以分別配置的
  2. es中默認的設置_source是enable的配置決定了字段是否被存儲,它默認是true的,即存儲整個文檔
  3. 當_source.enable配置為false后,你還希望存儲某些字段,可以使用mappings.type._source.includes:[]來實現
  4. 對於一些只需要查詢、不需要返回的字段,可以通過mappings.type._source.excludes:[]來進行排除
  5. 對於es索引的mapping,為了安全,我們杜絕動態生成字段,需要配置這個屬性mappings.type.dynamic:"strict",如果字段沒有mapping將直接報錯
  6. 對於上面的"strict",也可以讓它不報錯,新字段不寫入,可以把值設成"false"即可,mappings.type.dynamic:"false",這個值支持隨時更新的


免責聲明!

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



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