Skip to content

Commit 15b7aee

Browse files
authored
Remove back compat layer with 2.x indices. (#26245)
As of 6.0 we do not need to support 2.x indices.
1 parent d26c8b5 commit 15b7aee

File tree

10 files changed

+19
-103
lines changed

10 files changed

+19
-103
lines changed

core/src/main/java/org/elasticsearch/cluster/metadata/IndexTemplateMetaData.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -231,9 +231,7 @@ public static IndexTemplateMetaData readFrom(StreamInput in) throws IOException
231231
IndexMetaData.Custom customIndexMetaData = IndexMetaData.lookupPrototypeSafe(type).readFrom(in);
232232
builder.putCustom(type, customIndexMetaData);
233233
}
234-
if (in.getVersion().onOrAfter(Version.V_5_0_0_beta1)) {
235-
builder.version(in.readOptionalVInt());
236-
}
234+
builder.version(in.readOptionalVInt());
237235
return builder.build();
238236
}
239237

@@ -265,9 +263,7 @@ public void writeTo(StreamOutput out) throws IOException {
265263
out.writeString(cursor.key);
266264
cursor.value.writeTo(out);
267265
}
268-
if (out.getVersion().onOrAfter(Version.V_5_0_0_beta1)) {
269-
out.writeOptionalVInt(version);
270-
}
266+
out.writeOptionalVInt(version);
271267
}
272268

273269
public static class Builder {

core/src/main/java/org/elasticsearch/index/analysis/AnalysisRegistry.java

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -557,20 +557,7 @@ private void processAnalyzerFactory(DeprecationLogger deprecationLogger,
557557
// TODO: remove alias support completely when we no longer support pre 5.0 indices
558558
final String analyzerAliasKey = "index.analysis.analyzer." + analyzerFactory.name() + ".alias";
559559
if (indexSettings.getSettings().get(analyzerAliasKey) != null) {
560-
if (indexSettings.getIndexVersionCreated().onOrAfter(Version.V_5_0_0_beta1)) {
561-
// do not allow alias creation if the index was created on or after v5.0 alpha6
562-
throw new IllegalArgumentException("setting [" + analyzerAliasKey + "] is not supported");
563-
}
564-
565-
// the setting is now removed but we only support it for loading indices created before v5.0
566-
deprecationLogger.deprecated("setting [{}] is only allowed on index [{}] because it was created before 5.x; " +
567-
"analyzer aliases can no longer be created on new indices.", analyzerAliasKey, indexSettings.getIndex().getName());
568-
Set<String> aliases = Sets.newHashSet(indexSettings.getSettings().getAsArray(analyzerAliasKey));
569-
for (String alias : aliases) {
570-
if (analyzerAliases.putIfAbsent(alias, analyzer) != null) {
571-
throw new IllegalStateException("alias [" + alias + "] is already used by [" + analyzerAliases.get(alias).name() + "]");
572-
}
573-
}
560+
throw new IllegalArgumentException("setting [" + analyzerAliasKey + "] is not supported");
574561
}
575562
}
576563

core/src/main/java/org/elasticsearch/index/mapper/DynamicTemplate.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ public static DynamicTemplate parse(String name, Map<String, Object> conf,
186186
matchPattern = entry.getValue().toString();
187187
} else if ("mapping".equals(propName)) {
188188
mapping = (Map<String, Object>) entry.getValue();
189-
} else if (indexVersionCreated.onOrAfter(Version.V_5_0_0_alpha1)) {
189+
} else {
190190
// unknown parameters were ignored before but still carried through serialization
191191
// so we need to ignore them at parsing time for old indices
192192
throw new IllegalArgumentException("Illegal dynamic template parameter: [" + propName + "]");

core/src/main/java/org/elasticsearch/index/mapper/FieldMapper.java

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -212,19 +212,11 @@ protected String buildFullName(BuilderContext context) {
212212
}
213213

214214
protected boolean defaultDocValues(Version indexCreated) {
215-
if (indexCreated.onOrAfter(Version.V_5_0_0_alpha1)) {
216-
// add doc values by default to keyword (boolean, numerics, etc.) fields
217-
return fieldType.tokenized() == false;
218-
} else {
219-
return fieldType.tokenized() == false && fieldType.indexOptions() != IndexOptions.NONE;
220-
}
215+
return fieldType.tokenized() == false;
221216
}
222217

223218
protected void setupFieldType(BuilderContext context) {
224219
fieldType.setName(buildFullName(context));
225-
if (context.indexCreatedVersion().before(Version.V_5_0_0_alpha1)) {
226-
fieldType.setOmitNorms(fieldType.omitNorms() && fieldType.boost() == 1.0f);
227-
}
228220
if (fieldType.indexAnalyzer() == null && fieldType.tokenized() == false && fieldType.indexOptions() != IndexOptions.NONE) {
229221
fieldType.setIndexAnalyzer(Lucene.KEYWORD_ANALYZER);
230222
fieldType.setSearchAnalyzer(Lucene.KEYWORD_ANALYZER);
@@ -247,10 +239,8 @@ protected FieldMapper(String simpleName, MappedFieldType fieldType, MappedFieldT
247239
super(simpleName);
248240
assert indexSettings != null;
249241
this.indexCreatedVersion = Version.indexCreated(indexSettings);
250-
if (indexCreatedVersion.onOrAfter(Version.V_5_0_0_beta1)) {
251-
if (simpleName.isEmpty()) {
252-
throw new IllegalArgumentException("name cannot be empty string");
253-
}
242+
if (simpleName.isEmpty()) {
243+
throw new IllegalArgumentException("name cannot be empty string");
254244
}
255245
fieldType.freeze();
256246
this.fieldType = fieldType;

core/src/main/java/org/elasticsearch/index/mapper/IndexFieldMapper.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,7 @@ public IndexFieldMapper build(BuilderContext context) {
7777
public static class TypeParser implements MetadataFieldMapper.TypeParser {
7878
@Override
7979
public MetadataFieldMapper.Builder<?,?> parse(String name, Map<String, Object> node, ParserContext parserContext) throws MapperParsingException {
80-
if (parserContext.indexVersionCreated().onOrAfter(Version.V_5_0_0_alpha3)) {
81-
throw new MapperParsingException(NAME + " is not configurable");
82-
}
83-
return new Builder(parserContext.mapperService().fullName(NAME));
80+
throw new MapperParsingException(NAME + " is not configurable");
8481
}
8582

8683
@Override

core/src/main/java/org/elasticsearch/index/mapper/ObjectMapper.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -321,11 +321,8 @@ protected static void parseProperties(ObjectMapper.Builder objBuilder, Map<Strin
321321
Boolean includeInAll, Map<String, Mapper> mappers, Settings settings) {
322322
super(name);
323323
assert settings != null;
324-
Version indexCreatedVersion = Version.indexCreated(settings);
325-
if (indexCreatedVersion.onOrAfter(Version.V_5_0_0_beta1)) {
326-
if (name.isEmpty()) {
327-
throw new IllegalArgumentException("name cannot be empty string");
328-
}
324+
if (name.isEmpty()) {
325+
throw new IllegalArgumentException("name cannot be empty string");
329326
}
330327
this.fullPath = fullPath;
331328
this.enabled = enabled;

core/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,9 +116,6 @@ public MetadataFieldMapper.Builder<?,?> parse(String name, Map<String, Object> n
116116
if (fieldName.equals("enabled")) {
117117
builder.enabled(TypeParsers.nodeBooleanValue(name, "enabled", fieldNode, parserContext));
118118
iterator.remove();
119-
} else if ("format".equals(fieldName) && parserContext.indexVersionCreated().before(Version.V_5_0_0_alpha1)) {
120-
// ignore on old indices, reject on and after 5.0
121-
iterator.remove();
122119
} else if (fieldName.equals("includes")) {
123120
List<Object> values = (List<Object>) fieldNode;
124121
String[] includes = new String[values.size()];

core/src/main/java/org/elasticsearch/index/mapper/TermBasedFieldType.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import org.apache.lucene.search.TermInSetQuery;
2828
import org.apache.lucene.search.TermQuery;
2929
import org.apache.lucene.util.BytesRef;
30-
import org.elasticsearch.Version;
3130
import org.elasticsearch.common.lucene.BytesRefs;
3231
import org.elasticsearch.index.query.QueryShardContext;
3332

@@ -51,12 +50,11 @@ protected BytesRef indexedValueForSearch(Object value) {
5150
@Override
5251
public Query termQuery(Object value, QueryShardContext context) {
5352
failIfNotIndexed();
54-
TermQuery query = new TermQuery(new Term(name(), indexedValueForSearch(value)));
55-
if (boost() == 1f ||
56-
(context != null && context.indexVersionCreated().before(Version.V_5_0_0_alpha1))) {
57-
return query;
53+
Query query = new TermQuery(new Term(name(), indexedValueForSearch(value)));
54+
if (boost() != 1f) {
55+
query = new BoostQuery(query, boost());
5856
}
59-
return new BoostQuery(query, boost());
57+
return query;
6058
}
6159

6260
@Override

core/src/main/java/org/elasticsearch/index/mapper/TypeParsers.java

Lines changed: 4 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,9 @@
3535
import java.util.Iterator;
3636
import java.util.List;
3737
import java.util.Map;
38-
import java.util.Map.Entry;
3938

4039
import static org.elasticsearch.common.xcontent.support.XContentMapValues.isArray;
4140
import static org.elasticsearch.common.xcontent.support.XContentMapValues.nodeFloatValue;
42-
import static org.elasticsearch.common.xcontent.support.XContentMapValues.nodeMapValue;
4341
import static org.elasticsearch.common.xcontent.support.XContentMapValues.nodeStringValue;
4442

4543
public class TypeParsers {
@@ -158,37 +156,9 @@ private static void parseAnalyzersAndTermVectors(FieldMapper.Builder builder, St
158156
}
159157
}
160158

161-
public static boolean parseNorms(FieldMapper.Builder builder, String fieldName, String propName, Object propNode,
159+
public static void parseNorms(FieldMapper.Builder builder, String fieldName, Object propNode,
162160
Mapper.TypeParser.ParserContext parserContext) {
163-
if (propName.equals("norms")) {
164-
if (propNode instanceof Map) {
165-
final Map<String, Object> properties = nodeMapValue(propNode, "norms");
166-
for (Iterator<Entry<String, Object>> propsIterator = properties.entrySet().iterator(); propsIterator.hasNext(); ) {
167-
Entry<String, Object> entry2 = propsIterator.next();
168-
final String propName2 = entry2.getKey();
169-
final Object propNode2 = entry2.getValue();
170-
if (propName2.equals("enabled")) {
171-
builder.omitNorms(nodeBooleanValue(fieldName, "enabled", propNode2, parserContext) == false);
172-
propsIterator.remove();
173-
} else if (propName2.equals("loading")) {
174-
// ignore for bw compat
175-
propsIterator.remove();
176-
}
177-
}
178-
DocumentMapperParser.checkNoRemainingFields(propName, properties, parserContext.indexVersionCreated());
179-
DEPRECATION_LOGGER.deprecated("The [norms{enabled:true/false}] way of specifying norms is deprecated, please use " +
180-
"[norms:true/false] instead");
181-
} else {
182-
builder.omitNorms(nodeBooleanValue(fieldName,"norms", propNode, parserContext) == false);
183-
}
184-
return true;
185-
} else if (propName.equals("omit_norms")) {
186-
builder.omitNorms(nodeBooleanValue(fieldName,"norms", propNode, parserContext));
187-
DEPRECATION_LOGGER.deprecated("[omit_norms] is deprecated, please use [norms] instead with the opposite boolean value");
188-
return true;
189-
} else {
190-
return false;
191-
}
161+
builder.omitNorms(nodeBooleanValue(fieldName, "norms", propNode, parserContext) == false);
192162
}
193163

194164
/**
@@ -203,7 +173,8 @@ public static void parseTextField(FieldMapper.Builder builder, String name, Map<
203173
Map.Entry<String, Object> entry = iterator.next();
204174
final String propName = entry.getKey();
205175
final Object propNode = entry.getValue();
206-
if (parseNorms(builder, name, propName, propNode, parserContext)) {
176+
if ("norms".equals(propName)) {
177+
parseNorms(builder, name, propNode, parserContext);
207178
iterator.remove();
208179
}
209180
}
@@ -237,9 +208,6 @@ public static void parseField(FieldMapper.Builder builder, String name, Map<Stri
237208
} else if (propName.equals("boost")) {
238209
builder.boost(nodeFloatValue(propNode));
239210
iterator.remove();
240-
} else if (parserContext.indexVersionCreated().before(Version.V_5_0_0_alpha1)
241-
&& parseNorms(builder, name, propName, propNode, parserContext)) {
242-
iterator.remove();
243211
} else if (propName.equals("index_options")) {
244212
builder.indexOptions(nodeIndexOptionValue(propNode));
245213
iterator.remove();
@@ -259,11 +227,6 @@ && parseNorms(builder, name, propName, propNode, parserContext)) {
259227
SimilarityProvider similarityProvider = resolveSimilarity(parserContext, name, propNode.toString());
260228
builder.similarity(similarityProvider);
261229
iterator.remove();
262-
} else if (propName.equals("fielddata")
263-
&& propNode instanceof Map
264-
&& parserContext.indexVersionCreated().before(Version.V_5_0_0_alpha1)) {
265-
// ignore for bw compat
266-
iterator.remove();
267230
} else if (parseMultiField(builder, name, parserContext, propName, propNode)) {
268231
iterator.remove();
269232
} else if (propName.equals("copy_to")) {
@@ -387,10 +350,6 @@ public static void parseCopyFields(Object propNode, FieldMapper.Builder builder)
387350
}
388351

389352
private static SimilarityProvider resolveSimilarity(Mapper.TypeParser.ParserContext parserContext, String name, String value) {
390-
if (parserContext.indexVersionCreated().before(Version.V_5_0_0_alpha1) && "default".equals(value)) {
391-
// "default" similarity has been renamed into "classic" in 3.x.
392-
value = "classic";
393-
}
394353
SimilarityProvider similarityProvider = parserContext.getSimilarity(value);
395354
if (similarityProvider == null) {
396355
throw new MapperParsingException("Unknown Similarity type [" + value + "] for field [" + name + "]");

core/src/main/java/org/elasticsearch/index/similarity/SimilarityService.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,7 @@ public SimilarityService(IndexSettings indexSettings, ScriptService scriptServic
7979
Map<String, Settings> similaritySettings = this.indexSettings.getSettings().getGroups(IndexModule.SIMILARITY_SETTINGS_PREFIX);
8080
for (Map.Entry<String, Settings> entry : similaritySettings.entrySet()) {
8181
String name = entry.getKey();
82-
// Starting with v5.0 indices, it should no longer be possible to redefine built-in similarities
83-
if(BUILT_IN.containsKey(name) && indexSettings.getIndexVersionCreated().onOrAfter(Version.V_5_0_0_alpha1)) {
82+
if (BUILT_IN.containsKey(name)) {
8483
throw new IllegalArgumentException("Cannot redefine built-in Similarity [" + name + "]");
8584
}
8685
Settings providerSettings = entry.getValue();
@@ -97,10 +96,6 @@ public SimilarityService(IndexSettings indexSettings, ScriptService scriptServic
9796
Map<String, SimilarityProvider> providerMapping = addSimilarities(similaritySettings, indexSettings.getSettings(), scriptService,
9897
DEFAULTS);
9998
for (Map.Entry<String, SimilarityProvider> entry : providerMapping.entrySet()) {
100-
// Avoid overwriting custom providers for indices older that v5.0
101-
if (providers.containsKey(entry.getKey()) && indexSettings.getIndexVersionCreated().before(Version.V_5_0_0_alpha1)) {
102-
continue;
103-
}
10499
providers.put(entry.getKey(), entry.getValue());
105100
}
106101
this.similarities = providers;

0 commit comments

Comments
 (0)