# 查询性能优化

URL: https://caijiao.org/elasticsearch/04.practical/07.performance-query
Source: docs/elasticsearch/04.practical/07.performance-query.md
Description: 本章介绍 Elasticsearch 查询性能优化的常用技巧和策略，帮助提升搜索响应速度，降低资源消耗。

提升 Elasticsearch 查询性能对保证系统响应速度和稳定性至关重要。本文总结了实用的查询优化方法和最佳实践。

## 1. 合理设计索引结构

- 使用合适的字段类型，避免使用文本字段进行精确匹配  
- 合理规划映射（mapping），禁用不必要的字段索引  
- 减少字段数量，避免存储冗余数据

## 2. 使用过滤器代替查询

- 过滤器不参与评分计算，缓存效果好  
- 使用 `bool` 查询中的 `filter` 代替 `must` 以提高性能

## 3. 控制返回字段

- 使用 `_source` 过滤，只返回需要的字段，减少数据传输  
- 使用 `stored_fields` 返回已存储字段，避免加载全文数据

## 4. 限制查询结果数

- 使用 `from` 和 `size` 分页控制返回结果，避免大量数据加载  
- 使用搜索后滚动（scroll）处理大量数据

## 5. 避免使用昂贵查询

- 尽量避免 `wildcard`、`regexp` 和 `script` 查询，因计算量大  
- 使用关键字（keyword）字段进行精确匹配

## 6. 缓存与预热

- 利用查询缓存，避免重复计算  
- 预热热点查询，提升首次响应速度

## 7. 硬件与集群配置

- 合理配置节点资源（CPU、内存、磁盘）  
- 优化分片数量和副本，提高并发能力

---

通过综合运用上述优化技巧，可以显著提升 Elasticsearch 查询的性能和系统稳定性。
