diff --git a/core/src/main/java/org/elasticsearch/index/fielddata/plain/DocValuesIndexFieldData.java b/core/src/main/java/org/elasticsearch/index/fielddata/plain/DocValuesIndexFieldData.java index ee4a8c115c7..97fb3e5c549 100644 --- a/core/src/main/java/org/elasticsearch/index/fielddata/plain/DocValuesIndexFieldData.java +++ b/core/src/main/java/org/elasticsearch/index/fielddata/plain/DocValuesIndexFieldData.java @@ -104,11 +104,9 @@ public abstract class DocValuesIndexFieldData { if (BINARY_INDEX_FIELD_NAMES.contains(fieldNames.indexName())) { assert numericType == null; return new BinaryDVIndexFieldData(index, fieldNames, fieldType.fieldDataType()); - } else if (NUMERIC_INDEX_FIELD_NAMES.contains(fieldNames.indexName())) { - assert !numericType.isFloatingPoint(); - return new NumericDVIndexFieldData(index, fieldNames, fieldType.fieldDataType()); } else if (numericType != null) { - if (Version.indexCreated(indexSettings).onOrAfter(Version.V_1_4_0_Beta1)) { + if (TimestampFieldMapper.NAME.equals(fieldNames.indexName()) + || Version.indexCreated(indexSettings).onOrAfter(Version.V_1_4_0_Beta1)) { return new SortedNumericDVIndexFieldData(index, fieldNames, numericType, fieldType.fieldDataType()); } else { // prior to ES 1.4: multi-valued numerics were boxed inside a byte[] as BINARY diff --git a/core/src/main/java/org/elasticsearch/index/fielddata/plain/NumericDVIndexFieldData.java b/core/src/main/java/org/elasticsearch/index/fielddata/plain/NumericDVIndexFieldData.java deleted file mode 100644 index 49e03015cba..00000000000 --- a/core/src/main/java/org/elasticsearch/index/fielddata/plain/NumericDVIndexFieldData.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.elasticsearch.index.fielddata.plain; - -import org.apache.lucene.index.DocValues; -import org.apache.lucene.index.LeafReader; -import org.apache.lucene.index.LeafReaderContext; -import org.apache.lucene.index.NumericDocValues; -import org.apache.lucene.index.SortedNumericDocValues; -import org.apache.lucene.util.Accountable; -import org.apache.lucene.util.Bits; -import org.elasticsearch.index.Index; -import org.elasticsearch.index.fielddata.FieldDataType; -import org.elasticsearch.index.fielddata.IndexFieldData.XFieldComparatorSource.Nested; -import org.elasticsearch.index.fielddata.IndexNumericFieldData; -import org.elasticsearch.index.fielddata.fieldcomparator.LongValuesComparatorSource; -import org.elasticsearch.index.mapper.MappedFieldType.Names; -import org.elasticsearch.search.MultiValueMode; - -import java.io.IOException; -import java.util.Collection; -import java.util.Collections; - -public class NumericDVIndexFieldData extends DocValuesIndexFieldData implements IndexNumericFieldData { - - public NumericDVIndexFieldData(Index index, Names fieldNames, FieldDataType fieldDataType) { - super(index, fieldNames, fieldDataType); - } - - @Override - public AtomicLongFieldData load(LeafReaderContext context) { - final LeafReader reader = context.reader(); - final String field = fieldNames.indexName(); - return new AtomicLongFieldData(0) { - @Override - public SortedNumericDocValues getLongValues() { - try { - final NumericDocValues values = DocValues.getNumeric(reader, field); - final Bits docsWithField = DocValues.getDocsWithField(reader, field); - return DocValues.singleton(values, docsWithField); - } catch (IOException e) { - throw new IllegalStateException("Cannot load doc values", e); - } - } - - @Override - public Collection getChildResources() { - return Collections.emptyList(); - } - }; - - } - - @Override - public AtomicLongFieldData loadDirect(LeafReaderContext context) throws Exception { - return load(context); - } - - @Override - public org.elasticsearch.index.fielddata.IndexFieldData.XFieldComparatorSource comparatorSource(Object missingValue, MultiValueMode sortMode, Nested nested) { - return new LongValuesComparatorSource(this, missingValue, sortMode, nested); - } - - @Override - public org.elasticsearch.index.fielddata.IndexNumericFieldData.NumericType getNumericType() { - return NumericType.LONG; - } -} diff --git a/core/src/main/java/org/elasticsearch/index/fielddata/plain/SortedNumericDVIndexFieldData.java b/core/src/main/java/org/elasticsearch/index/fielddata/plain/SortedNumericDVIndexFieldData.java index 32bd21c3759..52686afc78d 100644 --- a/core/src/main/java/org/elasticsearch/index/fielddata/plain/SortedNumericDVIndexFieldData.java +++ b/core/src/main/java/org/elasticsearch/index/fielddata/plain/SortedNumericDVIndexFieldData.java @@ -129,7 +129,7 @@ public class SortedNumericDVIndexFieldData extends DocValuesIndexFieldData imple throw new IllegalStateException("Cannot load doc values", e); } } - + @Override public Collection getChildResources() { return Collections.emptyList();