summaryrefslogtreecommitdiff
path: root/core/src/test/java/org/elasticsearch/index/mapper/numeric/SimpleNumericTests.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/test/java/org/elasticsearch/index/mapper/numeric/SimpleNumericTests.java')
-rw-r--r--core/src/test/java/org/elasticsearch/index/mapper/numeric/SimpleNumericTests.java116
1 files changed, 108 insertions, 8 deletions
diff --git a/core/src/test/java/org/elasticsearch/index/mapper/numeric/SimpleNumericTests.java b/core/src/test/java/org/elasticsearch/index/mapper/numeric/SimpleNumericTests.java
index e68817e9ea..e0c55a85e0 100644
--- a/core/src/test/java/org/elasticsearch/index/mapper/numeric/SimpleNumericTests.java
+++ b/core/src/test/java/org/elasticsearch/index/mapper/numeric/SimpleNumericTests.java
@@ -23,6 +23,7 @@ import org.apache.lucene.analysis.NumericTokenStream;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.DocValuesType;
+import org.apache.lucene.index.IndexOptions;
import org.apache.lucene.index.IndexableField;
import org.elasticsearch.Version;
import org.elasticsearch.cluster.metadata.IndexMetaData;
@@ -281,23 +282,98 @@ public class SimpleNumericTests extends ESSingleNodeTestCase {
public void testDocValues() throws Exception {
String mapping = XContentFactory.jsonBuilder().startObject().startObject("type")
.startObject("properties")
+ .startObject("int1")
+ .field("type", "integer")
+ .endObject()
+ .startObject("int2")
+ .field("type", "integer")
+ .field("index", false)
+ .endObject()
+ .startObject("double1")
+ .field("type", "double")
+ .endObject()
+ .startObject("double2")
+ .field("type", "integer")
+ .field("index", false)
+ .endObject()
+ .endObject()
+ .endObject().endObject().string();
+
+ DocumentMapper defaultMapper = createIndex("test").mapperService().documentMapperParser().parse("type", new CompressedXContent(mapping));
+
+ ParsedDocument parsedDoc = defaultMapper.parse("test", "type", "1", XContentFactory.jsonBuilder()
+ .startObject()
+ .field("int1", "1234")
+ .field("double1", "1234")
+ .field("int2", "1234")
+ .field("double2", "1234")
+ .endObject()
+ .bytes());
+ Document doc = parsedDoc.rootDoc();
+ assertEquals(DocValuesType.SORTED_NUMERIC, SimpleStringMappingTests.docValuesType(doc, "int1"));
+ assertEquals(DocValuesType.SORTED_NUMERIC, SimpleStringMappingTests.docValuesType(doc, "double1"));
+ assertEquals(DocValuesType.SORTED_NUMERIC, SimpleStringMappingTests.docValuesType(doc, "int2"));
+ assertEquals(DocValuesType.SORTED_NUMERIC, SimpleStringMappingTests.docValuesType(doc, "double2"));
+
+ }
+
+ public void testBwCompatDocValues() throws Exception {
+ String mapping = XContentFactory.jsonBuilder().startObject().startObject("type")
+ .startObject("properties")
+ .startObject("int1")
+ .field("type", "integer")
+ .endObject()
+ .startObject("int2")
+ .field("type", "integer")
+ .field("index", "no")
+ .endObject()
+ .startObject("double1")
+ .field("type", "double")
+ .endObject()
+ .startObject("double2")
+ .field("type", "integer")
+ .field("index", "no")
+ .endObject()
+ .endObject()
+ .endObject().endObject().string();
+
+ Settings oldIndexSettings = Settings.builder().put(IndexMetaData.SETTING_VERSION_CREATED, Version.V_2_2_0).build();
+ DocumentMapper defaultMapper = createIndex("test", oldIndexSettings).mapperService().documentMapperParser().parse("type", new CompressedXContent(mapping));
+
+ ParsedDocument parsedDoc = defaultMapper.parse("test", "type", "1", XContentFactory.jsonBuilder()
+ .startObject()
+ .field("int1", "1234")
+ .field("double1", "1234")
+ .field("int2", "1234")
+ .field("double2", "1234")
+ .endObject()
+ .bytes());
+ Document doc = parsedDoc.rootDoc();
+ assertEquals(DocValuesType.SORTED_NUMERIC, SimpleStringMappingTests.docValuesType(doc, "int1"));
+ assertEquals(DocValuesType.SORTED_NUMERIC, SimpleStringMappingTests.docValuesType(doc, "double1"));
+ assertEquals(DocValuesType.NONE, SimpleStringMappingTests.docValuesType(doc, "int2"));
+ assertEquals(DocValuesType.NONE, SimpleStringMappingTests.docValuesType(doc, "double2"));
+ }
+
+ public void testUnIndex() throws IOException {
+ String mapping = XContentFactory.jsonBuilder().startObject().startObject("type")
+ .startObject("properties")
.startObject("int")
.field("type", "integer")
- .startObject("fielddata")
- .field("format", "doc_values")
- .endObject()
+ .field("index", false)
.endObject()
.startObject("double")
.field("type", "double")
- .startObject("fielddata")
- .field("format", "doc_values")
- .endObject()
+ .field("index", false)
.endObject()
.endObject()
.endObject().endObject().string();
DocumentMapper defaultMapper = createIndex("test").mapperService().documentMapperParser().parse("type", new CompressedXContent(mapping));
+ assertEquals("{\"type\":{\"properties\":{\"double\":{\"type\":\"double\",\"index\":false},\"int\":{\"type\":\"integer\",\"index\":false}}}}",
+ defaultMapper.mapping().toString());
+
ParsedDocument parsedDoc = defaultMapper.parse("test", "type", "1", XContentFactory.jsonBuilder()
.startObject()
.field("int", "1234")
@@ -305,8 +381,32 @@ public class SimpleNumericTests extends ESSingleNodeTestCase {
.endObject()
.bytes());
final Document doc = parsedDoc.rootDoc();
- assertEquals(DocValuesType.SORTED_NUMERIC, SimpleStringMappingTests.docValuesType(doc, "int"));
- assertEquals(DocValuesType.SORTED_NUMERIC, SimpleStringMappingTests.docValuesType(doc, "double"));
+ for (IndexableField field : doc.getFields("int")) {
+ assertEquals(IndexOptions.NONE, field.fieldType().indexOptions());
+ }
+ for (IndexableField field : doc.getFields("double")) {
+ assertEquals(IndexOptions.NONE, field.fieldType().indexOptions());
+ }
+ }
+
+ public void testBwCompatIndex() throws IOException {
+ String mapping = XContentFactory.jsonBuilder().startObject().startObject("type")
+ .startObject("properties")
+ .startObject("int")
+ .field("type", "integer")
+ .field("index", "no")
+ .endObject()
+ .startObject("double")
+ .field("type", "double")
+ .field("index", "not_analyzed")
+ .endObject()
+ .endObject()
+ .endObject().endObject().string();
+
+ Settings oldSettings = Settings.builder().put(IndexMetaData.SETTING_VERSION_CREATED, Version.V_2_2_0).build();
+ DocumentMapper defaultMapper = createIndex("test", oldSettings).mapperService().documentMapperParser().parse("type", new CompressedXContent(mapping));
+ assertEquals("{\"type\":{\"properties\":{\"double\":{\"type\":\"double\"},\"int\":{\"type\":\"integer\",\"index\":false}}}}",
+ defaultMapper.mapping().toString());
}
public void testDocValuesOnNested() throws Exception {