use static TL for common numeric precision values
This commit is contained in:
parent
1c921aebe5
commit
4a97af3cd4
|
@ -126,6 +126,27 @@ public abstract class NumberFieldMapper<T extends Number> extends AbstractFieldM
|
|||
}
|
||||
};
|
||||
|
||||
private static ThreadLocal<NumericTokenStream> tokenStream4 = new ThreadLocal<NumericTokenStream>() {
|
||||
@Override
|
||||
protected NumericTokenStream initialValue() {
|
||||
return new NumericTokenStream(4);
|
||||
}
|
||||
};
|
||||
|
||||
private static ThreadLocal<NumericTokenStream> tokenStream8 = new ThreadLocal<NumericTokenStream>() {
|
||||
@Override
|
||||
protected NumericTokenStream initialValue() {
|
||||
return new NumericTokenStream(8);
|
||||
}
|
||||
};
|
||||
|
||||
private static ThreadLocal<NumericTokenStream> tokenStreamMax = new ThreadLocal<NumericTokenStream>() {
|
||||
@Override
|
||||
protected NumericTokenStream initialValue() {
|
||||
return new NumericTokenStream(Integer.MAX_VALUE);
|
||||
}
|
||||
};
|
||||
|
||||
protected NumberFieldMapper(Names names, int precisionStep, float boost, FieldType fieldType,
|
||||
Explicit<Boolean> ignoreMalformed, NamedAnalyzer indexAnalyzer,
|
||||
NamedAnalyzer searchAnalyzer, PostingsFormatProvider provider, SimilarityProvider similarity,
|
||||
|
@ -248,10 +269,18 @@ public abstract class NumberFieldMapper<T extends Number> extends AbstractFieldM
|
|||
|
||||
@Override
|
||||
public void close() {
|
||||
tokenStream.remove();
|
||||
}
|
||||
|
||||
protected NumericTokenStream popCachedStream() {
|
||||
if (precisionStep == 4) {
|
||||
return tokenStream4.get();
|
||||
}
|
||||
if (precisionStep == 8) {
|
||||
return tokenStream8.get();
|
||||
}
|
||||
if (precisionStep == Integer.MAX_VALUE) {
|
||||
return tokenStreamMax.get();
|
||||
}
|
||||
return tokenStream.get();
|
||||
}
|
||||
|
||||
|
@ -288,7 +317,7 @@ public abstract class NumberFieldMapper<T extends Number> extends AbstractFieldM
|
|||
builder.field("ignore_malformed", ignoreMalformed.value());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isNumeric() {
|
||||
return true;
|
||||
|
|
Loading…
Reference in New Issue