@Override public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { if (indexCreatedBefore2x == false) { return builder; } boolean includeDefaults = params.paramAsBoolean("include_defaults", false); // if all are defaults, no sense to write it at all if (!includeDefaults && fieldType().stored() == Defaults.FIELD_TYPE.stored() && fieldType().indexOptions() == Defaults.FIELD_TYPE.indexOptions() && path == Defaults.PATH && hasCustomFieldDataSettings() == false) { return builder; } builder.startObject(CONTENT_TYPE); if (includeDefaults || fieldType().stored() != Defaults.FIELD_TYPE.stored()) { builder.field("store", fieldType().stored()); } if (includeDefaults || fieldType().indexOptions() != Defaults.FIELD_TYPE.indexOptions()) { builder.field( "index", indexTokenizeOptionToString( fieldType().indexOptions() != IndexOptions.NONE, fieldType().tokenized())); } if (includeDefaults || path != Defaults.PATH) { builder.field("path", path); } if (includeDefaults || hasCustomFieldDataSettings()) { builder.field("fielddata", (Map) fieldType().fieldDataType().getSettings().getAsMap()); } builder.endObject(); return builder; }
@Override public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { boolean includeDefaults = params.paramAsBoolean("include_defaults", false); // if all are defaults, no sense to write it at all boolean indexed = fieldType.indexOptions() != IndexOptions.NONE; boolean indexedDefault = Defaults.FIELD_TYPE.indexOptions() != IndexOptions.NONE; if (!includeDefaults && indexed == indexedDefault && fieldType.stored() == Defaults.FIELD_TYPE.stored() && required == Defaults.REQUIRED && path == Defaults.PATH) { return builder; } builder.startObject(CONTENT_TYPE); if (indexCreatedBefore2x && (includeDefaults || indexed != indexedDefault)) { builder.field("index", indexTokenizeOptionToString(indexed, fieldType.tokenized())); } if (indexCreatedBefore2x && (includeDefaults || fieldType.stored() != Defaults.FIELD_TYPE.stored())) { builder.field("store", fieldType.stored()); } if (includeDefaults || required != Defaults.REQUIRED) { builder.field("required", required); } if (indexCreatedBefore2x && (includeDefaults || path != Defaults.PATH)) { builder.field("path", path); } builder.endObject(); return builder; }