Elasticsearch 查询慢的原因通常可以归结为数据建模、集群资源、查询写法、配置参数、基础设施等多个层面。下面按常见原因系统地说明,并给出对应的优化方向。
wildcard / regexp / prefix 放在前面script 查询query_string 而未限制字段text 字段做聚合或排序✅ 优化:
keyword 做精确匹配/聚合term 替代 match 做精确查询*xxx* 这类 wildcardfrom + size 太大(如 from=100000)✅ 优化:
search_afterscroll(离线导出)✅ 优化:
composite 聚合text 字段用于过滤/聚合keyword✅ 优化:
"user_id": {
"type": "keyword"
}
✅ 优化:
✅ 优化:
✅ 优化:
✅ 优化:
✅ 优化:
✅ 优化:
filter 上下文refresh_interval 太小✅ 优化:
30s 甚至更大✅ 优化:
_source 过滤)GET _nodes/hot_threadsGET index/_search?profile=truequery 慢还是 fetch 慢ES 查询慢,90% 是“查得太多 / 查得不对 / 索引设计不合理”,不是 ES 本身慢。
如果你愿意,可以贴:
我可以直接帮你定位具体慢在哪里。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。