elastic优化
-
通过定义keyword 的
"null_value" :"NULL"
,使得搜索是不用单独使用exists查询。统一用terms查询就能查询到想要的结果 -
利用constantScore和filter查询,跳过算分的步骤,提高性能
-
设置
"index" :false
对于不用作为查询条件的字段,增加写的性能 -
设置
"enable":false
,对于不需要检索,排序和聚合的字段 -
设置
"norms":false
,对于不需要算分的字段 -
设置
"doc_values" :false
对于不用排序和聚合的字段,增加写的性能 -
设置聚合的keyword字段,
"eager_global_ordinals": true
,能够将写入的文档添加到缓存中,增加聚合搜索的性能 -
为索引增加"_meta"信息,用于识别mapping 的版本,便于管理mapping
-
查看分片的大小信息,如果每个分片大于20GB,需要扩充主分片数量
-
单个节点数据控制在2TB以内,最大不超过5TB
-
每个节点每GB堆内存,建议最多20个分片,每个分片控制数据在20-40GB内
-
8GB内存,数据量控制在
8*20GB*30G = 4.8TB
-
根据分片确定节点内存大小:给每个字段预留1kb堆空间
分片数 * 所有字段数 * 1kb + 0.5GB(开销空间:索引、搜索、聚合)= 最终单节点ES堆空间大小
-
-
对于搜索类的项目,内存和存储数据比例1:16
-
有复杂的查询和聚合,建议设置coordinating节点
-
为避免分片分布不均的问题,要提前监控磁盘空间,提前清理数据或增加节点(70%)
-
使用es自动生成文档的ID,提高refresh interval的时间,默认为1s
-
控制分词的级别,使用index_options控制。docs、freqs、positions、offsets
__EOF__

本文链接:https://www.cnblogs.com/pengliblogs/p/17949148.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~