diff options
Diffstat (limited to 'modules/lang-expression/src/main/java/org/elasticsearch/script/expression/EmptyMemberValueSource.java')
-rw-r--r-- | modules/lang-expression/src/main/java/org/elasticsearch/script/expression/EmptyMemberValueSource.java | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/modules/lang-expression/src/main/java/org/elasticsearch/script/expression/EmptyMemberValueSource.java b/modules/lang-expression/src/main/java/org/elasticsearch/script/expression/EmptyMemberValueSource.java index b4c8582e0d..aa12560e1f 100644 --- a/modules/lang-expression/src/main/java/org/elasticsearch/script/expression/EmptyMemberValueSource.java +++ b/modules/lang-expression/src/main/java/org/elasticsearch/script/expression/EmptyMemberValueSource.java @@ -19,10 +19,6 @@ package org.elasticsearch.script.expression; -import java.io.IOException; -import java.util.Map; -import java.util.Objects; - import org.apache.lucene.index.LeafReaderContext; import org.apache.lucene.queries.function.FunctionValues; import org.apache.lucene.queries.function.ValueSource; @@ -31,6 +27,10 @@ import org.elasticsearch.index.fielddata.AtomicNumericFieldData; import org.elasticsearch.index.fielddata.IndexFieldData; import org.elasticsearch.index.fielddata.SortedNumericDoubleValues; +import java.io.IOException; +import java.util.Map; +import java.util.Objects; + /** * ValueSource to return non-zero if a field is missing. * <p> @@ -50,12 +50,11 @@ final class EmptyMemberValueSource extends ValueSource { final SortedNumericDoubleValues values = leafData.getDoubleValues(); return new DoubleDocValues(this) { @Override - public double doubleVal(int doc) { - values.setDocument(doc); - if (values.count() == 0) { - return 1; - } else { + public double doubleVal(int doc) throws IOException { + if (values.advanceExact(doc)) { return 0; + } else { + return 1; } } }; |