天天看點

es~存儲部分字段

es存儲兩種資料

  • es中存儲的資料分為兩種,原始文檔和索引文檔(反向索引),這兩個内容都可以分别配置的。
    es~存儲部分字段
  • 我們的一個查詢請求,會通過分詞器将你的條件進行分詞,然後去反向索引表中查詢目标值
    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"

    ,這個值支援随時更新的

作者:倉儲大叔,張占嶺,

榮譽:微軟MVP

QQ:853066980

支付寶掃一掃,為大叔打賞!

es~存儲部分字段