Do not parse the created version from the settings every time a field is parsed. #19824

I found it while looking at some jfr telemetry reports from Rally.
This commit is contained in:
Adrien Grand 2016-08-05 14:51:47 +02:00
parent 841d5a210e
commit 284b9794c0
1 changed files with 3 additions and 1 deletions

View File

@ -238,6 +238,7 @@ public abstract class FieldMapper extends Mapper implements Cloneable {
} }
} }
private final Version indexCreatedVersion;
protected MappedFieldType fieldType; protected MappedFieldType fieldType;
protected final MappedFieldType defaultFieldType; protected final MappedFieldType defaultFieldType;
protected MultiFields multiFields; protected MultiFields multiFields;
@ -246,6 +247,7 @@ public abstract class FieldMapper extends Mapper implements Cloneable {
protected FieldMapper(String simpleName, MappedFieldType fieldType, MappedFieldType defaultFieldType, Settings indexSettings, MultiFields multiFields, CopyTo copyTo) { protected FieldMapper(String simpleName, MappedFieldType fieldType, MappedFieldType defaultFieldType, Settings indexSettings, MultiFields multiFields, CopyTo copyTo) {
super(simpleName); super(simpleName);
assert indexSettings != null; assert indexSettings != null;
this.indexCreatedVersion = Version.indexCreated(indexSettings);
fieldType.freeze(); fieldType.freeze();
this.fieldType = fieldType; this.fieldType = fieldType;
defaultFieldType.freeze(); defaultFieldType.freeze();
@ -283,7 +285,7 @@ public abstract class FieldMapper extends Mapper implements Cloneable {
if (!customBoost() if (!customBoost()
// don't set boosts eg. on dv fields // don't set boosts eg. on dv fields
&& field.fieldType().indexOptions() != IndexOptions.NONE && field.fieldType().indexOptions() != IndexOptions.NONE
&& Version.indexCreated(context.indexSettings()).before(Version.V_5_0_0_alpha1)) { && indexCreatedVersion.before(Version.V_5_0_0_alpha1)) {
field.setBoost(fieldType().boost()); field.setBoost(fieldType().boost());
} }
context.doc().add(field); context.doc().add(field);