es~存儲部分字段
es存儲兩種數據
-
es中存儲的數據分為兩種,原始文檔和索引文檔(倒排索引),這兩個內容都可以分別配置的。
-
我們的一個查詢請求,會通過分詞器將你的條件進行分詞,然後去倒排索引表中查詢目標值
-
當然,如果你的es設置了分片,並且是一個多節點的集羣環境,那他將在這些分片中進行檢索,最後再合併
-
每個分片都有一個主分片,同時也有副本,當然你把相同分片的主和副本做到一台服務器上,意義不大,副本的意思就是當主分片所在的服務器宕機之後,另一台服務器的對應副本分片可以提升為主分片,對外提供服務
下面介紹存儲部分字段
有時,我們文檔中的字段可能只是一個檢索條件,它本身的信息對外界意義不大,所以這種字段是可以不存的,這可以節省一些空間,下面進行了相關知識的總結:
- es中存儲的數據分為兩種,原始文檔和索引文檔(倒排索引),這兩個內容都可以分別配置的
- es中默認的設置_source是enable的配置決定了字段是否被存儲,它默認是
true
的,即存儲整個文檔 - 當_source.enable配置為false後,你還希望存儲某些字段,可以使用
mappings.type._source.includes:[]
來實現 - 對於一些只需要查詢、不需要返回的字段,可以通過
mappings.type._source.excludes:[]
來進行排除 - 對於es索引的mapping,為了安全,我們杜絕動態生成字段,需要配置這個屬性
mappings.type.dynamic:"strict"
,如果字段沒有mapping將直接報錯 - 對於上面的
"strict"
,也可以讓它不報錯,新字段不寫入,可以把值設成"false"即可,mappings.type.dynamic:"false"
,這個值支持隨時更新的
「其他文章」
- java~Optional語法糖
- Java~公用包中如何加載資源文件
- [email protected]一切為了可擴展性
- rsa~對接第三方rsa問題排查
- keycloak~自定義directgrant直接認證
- java~RMI引起的log4j漏洞
- k8s~Endpoints的使用之負載均衡
- keycloak~uma遠程資源授權對接asp.net core
- es~存儲部分字段
- maven編譯後複製到目標位置
- keycloak~緩存的使用
- keycloak~授權功能的使用
- java~並行計算~大集合的並行處理
- keycloak~使用JDBC_PING實現k8s裏的高可用
- keycloak~為認證提供者添加配置項
- skywalking的介紹
- springboot~disruptor異步隊列
- keycloak~自定義rest接口
- springcloud~feign POST form-url-encoded data
- js~ajax獲取後端HTTP狀態的幾種情況