From ad1e515b47918862d1863eec8825d8a9064be188 Mon Sep 17 00:00:00 2001 From: ash9146 <52308288+ash9146@users.noreply.github.com> Date: Sat, 1 Aug 2026 09:26:03 +0900 Subject: [PATCH] Recommend synthetic _source before disabling _source entirely The mapping-source-field.md reference page lists synthetic _source as the first option to consider for reducing _source disk usage, before disabling _source completely - but this production-guidance page only covered the latter, more disruptive option (reindex/update stop working). Synthetic _source avoids that tradeoff for most common field types by reconstructing _source at retrieval time from doc_values instead of storing it. Notes the Enterprise subscription requirement (per elastic.co/subscriptions, synthetic _source has been an Enterprise feature since 8.17) and the minor document-shape differences synthetic _source can introduce, so this isn't presented as a free lunch. --- .../production-guidance/optimize-performance/disk-usage.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/deploy-manage/production-guidance/optimize-performance/disk-usage.md b/deploy-manage/production-guidance/optimize-performance/disk-usage.md index fc39cbffb4..fc5fb52236 100644 --- a/deploy-manage/production-guidance/optimize-performance/disk-usage.md +++ b/deploy-manage/production-guidance/optimize-performance/disk-usage.md @@ -69,6 +69,12 @@ Keep in mind that large shard sizes come with drawbacks, such as long full recov Refer to [](./size-shards.md) for more information about sharding strategies. +## Reduce `_source` storage overhead + +If disk usage is a concern but you still need `_source` for features like update, reindex, or highlighting, consider [synthetic `_source`](elasticsearch://reference/elasticsearch/mapping-reference/mapping-source-field.md#synthetic-source) before disabling `_source` entirely. It reconstructs `_source` at retrieval time instead of storing it on disk, with no additional storage overhead for most common field types. Unlike disabling `_source` or excluding fields from it, reindex and update continue to work normally. + +Synthetic `_source` requires an [Enterprise subscription](https://www.elastic.co/pricing) (from {{es}} 8.17 onward), and the reconstructed `_source` may differ slightly from the original document (field order, array handling) — see [synthetic `_source` modifications](elasticsearch://reference/elasticsearch/mapping-reference/mapping-source-field.md#synthetic-source-modifications) for details. + ## Disable `_source` [disable-source] The [`_source`](elasticsearch://reference/elasticsearch/mapping-reference/mapping-source-field.md) field stores the original JSON body of the document. If you don't need access to it you can disable it. However, APIs that needs access to `_source` such as update, highlight and reindex won't work.