优化 Elasticsearch 索引可以从索引设计、写入优化、查询优化、集群配置和运维管理几个层面入手。下面按实用优先级给你一个系统性的优化指南。
避免 dynamic mapping 滥用
"dynamic": "strict"
或明确字段类型,防止垃圾字段膨胀。
选择合适的字段类型
keywordinteger / longtext + keyword 子字段"name": {
"type": "text",
"fields": {
"raw": { "type": "keyword" }
}
}
禁用不需要的功能
"enabled": false // 不需要索引的字段
"index": false // 不需要搜索的字段
"doc_values": false // 不需要聚合/排序
"norms": false // 不需要评分
logs-2025-01
logs-2025-02
经验法则:
"number_of_shards": 3
"number_of_replicas": 1
POST _bulk
PUT my_index/_settings
{
"refresh_interval": "30s"
}
导入完成后恢复:
"refresh_interval": "1s"
"number_of_replicas": 0
导入完成后再开启。
❌
"wildcard": { "name": "*abc*" }
✅ 使用 match 或 ngram
"filter": [
{ "term": { "status": "active" } }
]
❌
from: 10000
✅
search_after
或 scroll(离线)
"_source": ["id", "title"]
write 线程search 线程POST logs-2025-01/_forcemerge?max_num_segments=1
search latencyindexing rateheap usagedisk I/O按天建索引
refresh_interval=30s
replicas=0(写入时)
bulk 写入
force merge
ILM 自动删除
如果你能告诉我:
我可以给你一套定制化优化方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。