Khi cần một field tính lúc query mà không muốn reindex: thêm field mới cho dữ liệu cũ, sửa gấp một mapping sai, hoặc thử nghiệm trước khi quyết định index thật.
"runtime": {
"profit": {
"type": "double",
"script": "emit(doc['price'].value - doc['cost'].value)"
}
}Dùng được ngay trong query, sort và aggregation như field thường, và không tốn dung lượng index.
Đánh đổi rất rõ: script chạy trên từng document khớp, nên query đụng nhiều document sẽ chậm hẳn. Runtime field hợp cho khám phá dữ liệu và cho field ít được query, không hợp cho đường dẫn nóng.
Một cách dùng thực dụng: khai báo runtime field để chữa cháy ngay, đo xem nó có được dùng nhiều không, rồi mới quyết định reindex thành field thật.
Runtime field khai báo được ở hai chỗ: trong mapping (dùng chung) hoặc ngay trong một search request (chỉ cho lần query đó).