Nhóm static setting — quan trọng nhất là number_of_shards, và toàn bộ phần analysis (analyzer, tokenizer, filter).
Muốn đổi phải tạo index mới rồi reindex.
bash
# doi duoc (dynamic)
PUT /products/_settings
{ "index": { "number_of_replicas": 2, "refresh_interval": "30s" } }
# KHONG doi duoc (static): number_of_shards, analysis.*Mapping cũng gần như vậy: thêm field mới thì được, đổi kiểu field đã có thì không.
Hệ quả thực tế là quyết định lúc tạo index rất quan trọng, và cách phòng thủ chuẩn là luôn dùng alias: ứng dụng trỏ vào products, còn index thật là products_v1. Khi phải đổi static setting, tạo products_v2, reindex, chuyển alias — ứng dụng không phải sửa dòng code nào.
Một ngoại lệ hữu ích: _split và _shrink API đổi được số shard, nhưng có ràng buộc (index phải read-only, số shard mới phải là bội hoặc ước) nên thường vẫn kém linh hoạt hơn reindex.