mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-22 21:05:23 +00:00
fix failure in mlt with dates, this does mean that currently, mlt, when based on fetching the source and parsing it, does not do mlt on numbers
This commit is contained in:
parent
81c6b9075c
commit
4492293b49
@ -1,6 +1,7 @@
|
||||
rootLogger: INFO, console, file
|
||||
logger:
|
||||
jgroups: WARN
|
||||
action: DEBUG
|
||||
|
||||
appender:
|
||||
console:
|
||||
|
@ -26,23 +26,19 @@ import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
|
||||
/**
|
||||
* @author kimchy (Shay Banon)
|
||||
* @author kimchy (shay.banon)
|
||||
*/
|
||||
public class NumericDateTokenizer extends NumericTokenizer {
|
||||
|
||||
private final DateTimeFormatter dateTimeFormatter;
|
||||
|
||||
public NumericDateTokenizer(Reader reader, int precisionStep, DateTimeFormatter dateTimeFormatter) throws IOException {
|
||||
super(reader, new NumericTokenStream(precisionStep));
|
||||
this.dateTimeFormatter = dateTimeFormatter;
|
||||
super(reader, new NumericTokenStream(precisionStep), dateTimeFormatter);
|
||||
}
|
||||
|
||||
public NumericDateTokenizer(Reader reader, int precisionStep, char[] buffer, DateTimeFormatter dateTimeFormatter) throws IOException {
|
||||
super(reader, new NumericTokenStream(precisionStep), buffer);
|
||||
this.dateTimeFormatter = dateTimeFormatter;
|
||||
super(reader, new NumericTokenStream(precisionStep), buffer, dateTimeFormatter);
|
||||
}
|
||||
|
||||
@Override protected void setValue(NumericTokenStream tokenStream, String value) {
|
||||
tokenStream.setLongValue(dateTimeFormatter.parseMillis(value));
|
||||
tokenStream.setLongValue(((DateTimeFormatter) extra).parseMillis(value));
|
||||
}
|
||||
}
|
@ -25,16 +25,16 @@ import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
|
||||
/**
|
||||
* @author kimchy (Shay Banon)
|
||||
* @author kimchy (shay.banon)
|
||||
*/
|
||||
public class NumericDoubleTokenizer extends NumericTokenizer {
|
||||
|
||||
public NumericDoubleTokenizer(Reader reader, int precisionStep) throws IOException {
|
||||
super(reader, new NumericTokenStream(precisionStep));
|
||||
super(reader, new NumericTokenStream(precisionStep), null);
|
||||
}
|
||||
|
||||
public NumericDoubleTokenizer(Reader reader, int precisionStep, char[] buffer) throws IOException {
|
||||
super(reader, new NumericTokenStream(precisionStep), buffer);
|
||||
super(reader, new NumericTokenStream(precisionStep), buffer, null);
|
||||
}
|
||||
|
||||
@Override protected void setValue(NumericTokenStream tokenStream, String value) {
|
||||
|
@ -25,16 +25,16 @@ import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
|
||||
/**
|
||||
* @author kimchy (Shay Banon)
|
||||
* @author kimchy (shay.banon)
|
||||
*/
|
||||
public class NumericFloatTokenizer extends NumericTokenizer {
|
||||
|
||||
public NumericFloatTokenizer(Reader reader, int precisionStep) throws IOException {
|
||||
super(reader, new NumericTokenStream(precisionStep));
|
||||
super(reader, new NumericTokenStream(precisionStep), null);
|
||||
}
|
||||
|
||||
public NumericFloatTokenizer(Reader reader, int precisionStep, char[] buffer) throws IOException {
|
||||
super(reader, new NumericTokenStream(precisionStep), buffer);
|
||||
super(reader, new NumericTokenStream(precisionStep), buffer, null);
|
||||
}
|
||||
|
||||
@Override protected void setValue(NumericTokenStream tokenStream, String value) {
|
||||
|
@ -25,16 +25,16 @@ import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
|
||||
/**
|
||||
* @author kimchy (Shay Banon)
|
||||
* @author kimchy (shay.banon)
|
||||
*/
|
||||
public class NumericIntegerTokenizer extends NumericTokenizer {
|
||||
|
||||
public NumericIntegerTokenizer(Reader reader, int precisionStep) throws IOException {
|
||||
super(reader, new NumericTokenStream(precisionStep));
|
||||
super(reader, new NumericTokenStream(precisionStep), null);
|
||||
}
|
||||
|
||||
public NumericIntegerTokenizer(Reader reader, int precisionStep, char[] buffer) throws IOException {
|
||||
super(reader, new NumericTokenStream(precisionStep), buffer);
|
||||
super(reader, new NumericTokenStream(precisionStep), buffer, null);
|
||||
}
|
||||
|
||||
@Override protected void setValue(NumericTokenStream tokenStream, String value) {
|
||||
|
@ -25,16 +25,16 @@ import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
|
||||
/**
|
||||
* @author kimchy (Shay Banon)
|
||||
* @author kimchy (shay.banon)
|
||||
*/
|
||||
public class NumericLongTokenizer extends NumericTokenizer {
|
||||
|
||||
public NumericLongTokenizer(Reader reader, int precisionStep) throws IOException {
|
||||
super(reader, new NumericTokenStream(precisionStep));
|
||||
super(reader, new NumericTokenStream(precisionStep), null);
|
||||
}
|
||||
|
||||
public NumericLongTokenizer(Reader reader, int precisionStep, char[] buffer) throws IOException {
|
||||
super(reader, new NumericTokenStream(precisionStep), buffer);
|
||||
super(reader, new NumericTokenStream(precisionStep), buffer, null);
|
||||
}
|
||||
|
||||
@Override protected void setValue(NumericTokenStream tokenStream, String value) {
|
||||
|
@ -26,21 +26,25 @@ import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
|
||||
/**
|
||||
* @author kimchy (Shay Banon)
|
||||
* @author kimchy (shay.banon)
|
||||
*/
|
||||
public abstract class NumericTokenizer extends Tokenizer {
|
||||
|
||||
private final NumericTokenStream numericTokenStream;
|
||||
|
||||
protected NumericTokenizer(Reader reader, NumericTokenStream numericTokenStream) throws IOException {
|
||||
protected final Object extra;
|
||||
|
||||
protected NumericTokenizer(Reader reader, NumericTokenStream numericTokenStream, Object extra) throws IOException {
|
||||
super(numericTokenStream);
|
||||
this.numericTokenStream = numericTokenStream;
|
||||
this.extra = extra;
|
||||
reset(reader);
|
||||
}
|
||||
|
||||
protected NumericTokenizer(Reader reader, NumericTokenStream numericTokenStream, char[] buffer) throws IOException {
|
||||
protected NumericTokenizer(Reader reader, NumericTokenStream numericTokenStream, char[] buffer, Object extra) throws IOException {
|
||||
super(numericTokenStream);
|
||||
this.numericTokenStream = numericTokenStream;
|
||||
this.extra = extra;
|
||||
reset(reader, buffer);
|
||||
}
|
||||
|
||||
@ -51,7 +55,7 @@ public abstract class NumericTokenizer extends Tokenizer {
|
||||
|
||||
public void reset(Reader input, char[] buffer) throws IOException {
|
||||
super.reset(input);
|
||||
int len = super.input.read(buffer);
|
||||
int len = input.read(buffer);
|
||||
String value = new String(buffer, 0, len);
|
||||
setValue(numericTokenStream, value);
|
||||
numericTokenStream.reset();
|
||||
|
@ -97,7 +97,7 @@ public class JsonBoostFieldMapper extends JsonNumberFieldMapper<Float> implement
|
||||
@Override public Float value(Fieldable field) {
|
||||
byte[] value = field.getBinaryValue();
|
||||
if (value == null) {
|
||||
return Float.NaN;
|
||||
return null;
|
||||
}
|
||||
return Numbers.bytesToFloat(value);
|
||||
}
|
||||
|
@ -124,7 +124,7 @@ public class JsonDateFieldMapper extends JsonNumberFieldMapper<Long> {
|
||||
@Override public Long value(Fieldable field) {
|
||||
byte[] value = field.getBinaryValue();
|
||||
if (value == null) {
|
||||
return Long.MIN_VALUE;
|
||||
return null;
|
||||
}
|
||||
return Numbers.bytesToLong(value);
|
||||
}
|
||||
|
@ -113,7 +113,7 @@ public class JsonDoubleFieldMapper extends JsonNumberFieldMapper<Double> {
|
||||
@Override public Double value(Fieldable field) {
|
||||
byte[] value = field.getBinaryValue();
|
||||
if (value == null) {
|
||||
return Double.NaN;
|
||||
return null;
|
||||
}
|
||||
return Numbers.bytesToDouble(value);
|
||||
}
|
||||
|
@ -111,7 +111,7 @@ public class JsonFloatFieldMapper extends JsonNumberFieldMapper<Float> {
|
||||
@Override public Float value(Fieldable field) {
|
||||
byte[] value = field.getBinaryValue();
|
||||
if (value == null) {
|
||||
return Float.NaN;
|
||||
return null;
|
||||
}
|
||||
return Numbers.bytesToFloat(value);
|
||||
}
|
||||
|
@ -111,7 +111,7 @@ public class JsonIntegerFieldMapper extends JsonNumberFieldMapper<Integer> {
|
||||
@Override public Integer value(Fieldable field) {
|
||||
byte[] value = field.getBinaryValue();
|
||||
if (value == null) {
|
||||
return Integer.MIN_VALUE;
|
||||
return null;
|
||||
}
|
||||
return Numbers.bytesToInt(value);
|
||||
}
|
||||
|
@ -111,7 +111,7 @@ public class JsonLongFieldMapper extends JsonNumberFieldMapper<Long> {
|
||||
@Override public Long value(Fieldable field) {
|
||||
byte[] value = field.getBinaryValue();
|
||||
if (value == null) {
|
||||
return Long.MIN_VALUE;
|
||||
return null;
|
||||
}
|
||||
return Numbers.bytesToLong(value);
|
||||
}
|
||||
|
@ -127,7 +127,8 @@ public abstract class JsonNumberFieldMapper<T extends Number> extends JsonFieldM
|
||||
}
|
||||
|
||||
@Override public String valueAsString(Fieldable field) {
|
||||
return value(field).toString();
|
||||
Number num = value(field);
|
||||
return num == null ? null : num.toString();
|
||||
}
|
||||
|
||||
@Override public abstract Object valueFromTerm(String term);
|
||||
|
@ -111,7 +111,7 @@ public class JsonShortFieldMapper extends JsonNumberFieldMapper<Short> {
|
||||
@Override public Short value(Fieldable field) {
|
||||
byte[] value = field.getBinaryValue();
|
||||
if (value == null) {
|
||||
return Short.MIN_VALUE;
|
||||
return null;
|
||||
}
|
||||
return Numbers.bytesToShort(value);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user