(1)索引時間生成
PUT/POST時會生成單據值數據,即前向索引。
(2)核心原理類似倒排索引。
前向索引也會寫入磁盤文件,然後os cache會先緩存,提高訪問doc值前向索引的性能。
如果os cache的內存大小不足以容納整個前向索引,則doc值的數據將被寫入磁盤文件。
(3)性能問題:給jvm少點內存,64g服務器,給jvm最多16g。
官方推薦Es,es很大程度上是基於os緩存進行緩存和性能提升,不推薦jvm內存進行緩存,這樣會導致壹定的gc開銷和oom問題。
給jvm更少的內存,給os緩存更多的內存。
64g服務器,給jvm最多16g,剩下幾十G內存給os緩存。
Os cache可以提高doc值和倒排索引的緩存和查詢效率。
2.列壓縮
文件1: 550
文件2: 550
文檔3: 500
組合相同的值,550,doc1,doc2都保留壹個550的logo。
(1)所有值相同,直接保留單個值。
(2)小於256個值,使用表編碼模式:壹種壓縮方法。
(3)如果大於256個值,看是否有最大公約數,除以最大公約數,然後保留這個最大公約數。
文件1: 36
文件2: 24
6->;doc1: 6,doc2: 4 ->保留壹個最大公約數6的記號,6也就省了。
(4)如果沒有最大公約數,則采用偏移結合壓縮:
3.禁用文檔值以禁用正交索引。
如果真的不需要doc值,可以禁用它以減少磁盤空間占用,相比之下如果不需要聚合等操作。
放我的索引
{
"映射":{
"我的類型":{
"屬性":{
"我的字段":{
"類型":"關鍵字"
“doc_values”:假
}
}
}
}
}