diff options
Diffstat (limited to 'core/src/test/java/org/elasticsearch/index/mapper/string/SimpleStringMappingTests.java')
-rw-r--r-- | core/src/test/java/org/elasticsearch/index/mapper/string/SimpleStringMappingTests.java | 82 |
1 files changed, 56 insertions, 26 deletions
diff --git a/core/src/test/java/org/elasticsearch/index/mapper/string/SimpleStringMappingTests.java b/core/src/test/java/org/elasticsearch/index/mapper/string/SimpleStringMappingTests.java index d32dcad543..6114185ccf 100644 --- a/core/src/test/java/org/elasticsearch/index/mapper/string/SimpleStringMappingTests.java +++ b/core/src/test/java/org/elasticsearch/index/mapper/string/SimpleStringMappingTests.java @@ -33,7 +33,6 @@ import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.index.IndexService; -import org.elasticsearch.index.fielddata.FieldDataType; import org.elasticsearch.index.mapper.ContentPath; import org.elasticsearch.index.mapper.DocumentMapper; import org.elasticsearch.index.mapper.DocumentMapperParser; @@ -45,11 +44,14 @@ import org.elasticsearch.index.mapper.ParseContext.Document; import org.elasticsearch.index.mapper.ParsedDocument; import org.elasticsearch.index.mapper.core.StringFieldMapper; import org.elasticsearch.index.mapper.core.StringFieldMapper.Builder; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.test.ESSingleNodeTestCase; +import org.elasticsearch.test.InternalSettingsPlugin; import org.elasticsearch.test.VersionUtils; import org.junit.Before; import java.util.Arrays; +import java.util.Collection; import java.util.Map; import static java.util.Collections.emptyMap; @@ -61,7 +63,11 @@ import static org.hamcrest.Matchers.nullValue; /** */ public class SimpleStringMappingTests extends ESSingleNodeTestCase { - private static Settings DOC_VALUES_SETTINGS = Settings.builder().put(FieldDataType.FORMAT_KEY, FieldDataType.DOC_VALUES_FORMAT_VALUE).build(); + + @Override + protected Collection<Class<? extends Plugin>> getPlugins() { + return pluginList(InternalSettingsPlugin.class); + } IndexService indexService; DocumentMapperParser parser; @@ -363,47 +369,71 @@ public class SimpleStringMappingTests extends ESSingleNodeTestCase { assertThat(doc.rootDoc().getField("field6").fieldType().storeTermVectorPayloads(), equalTo(true)); } - public void testDocValuesFielddata() throws Exception { - IndexService indexService = createIndex("index"); - DocumentMapperParser parser = indexService.mapperService().documentMapperParser(); + public void testDocValues() throws Exception { + // doc values only work on non-analyzed content final BuilderContext ctx = new BuilderContext(indexService.getIndexSettings().getSettings(), new ContentPath(1)); + try { + new StringFieldMapper.Builder("anything").docValues(true).build(ctx); + fail(); + } catch (Exception e) { /* OK */ } assertFalse(new Builder("anything").index(false).build(ctx).fieldType().hasDocValues()); - assertTrue(new Builder("anything").index(false).fieldDataSettings(DOC_VALUES_SETTINGS).build(ctx).fieldType().hasDocValues()); + assertTrue(new Builder("anything").index(true).tokenized(false).build(ctx).fieldType().hasDocValues()); + assertFalse(new Builder("anything").index(true).tokenized(true).build(ctx).fieldType().hasDocValues()); + assertFalse(new Builder("anything").index(false).tokenized(false).docValues(false).build(ctx).fieldType().hasDocValues()); assertTrue(new Builder("anything").index(false).docValues(true).build(ctx).fieldType().hasDocValues()); String mapping = XContentFactory.jsonBuilder().startObject().startObject("type") - .startObject("properties") - .startObject("str1") - .field("type", "string") - .startObject("fielddata") - .field("format", "paged_bytes") + .startObject("properties") + .startObject("str1") + .field("type", "string") + .field("index", "no") .endObject() - .endObject() - .startObject("str2") - .field("type", "string") - .field("index", "not_analyzed") - .startObject("fielddata") - .field("format", "doc_values") + .startObject("str2") + .field("type", "string") + .field("index", "not_analyzed") + .endObject() + .startObject("str3") + .field("type", "string") + .field("index", "analyzed") .endObject() - .endObject() - .endObject() - .endObject().endObject().string(); + .startObject("str4") + .field("type", "string") + .field("index", "not_analyzed") + .field("doc_values", false) + .endObject() + .startObject("str5") + .field("type", "string") + .field("index", "no") + .field("doc_values", false) + .endObject() + .endObject() + .endObject().endObject().string(); DocumentMapper defaultMapper = parser.parse("type", new CompressedXContent(mapping)); ParsedDocument parsedDoc = defaultMapper.parse("test", "type", "1", XContentFactory.jsonBuilder() - .startObject() - .field("str1", "1234") - .field("str2", "1234") - .endObject() - .bytes()); + .startObject() + .field("str1", "1234") + .field("str2", "1234") + .field("str3", "1234") + .field("str4", "1234") + .field("str5", "1234") + .endObject() + .bytes()); final Document doc = parsedDoc.rootDoc(); assertEquals(DocValuesType.NONE, docValuesType(doc, "str1")); assertEquals(DocValuesType.SORTED_SET, docValuesType(doc, "str2")); + assertEquals(DocValuesType.NONE, docValuesType(doc, "str3")); + assertEquals(DocValuesType.NONE, docValuesType(doc, "str4")); + assertEquals(DocValuesType.NONE, docValuesType(doc, "str5")); + } - public void testDocValues() throws Exception { + public void testBwCompatDocValues() throws Exception { + Settings oldIndexSettings = Settings.builder().put(IndexMetaData.SETTING_VERSION_CREATED, Version.V_2_2_0).build(); + indexService = createIndex("test_old", oldIndexSettings); + parser = indexService.mapperService().documentMapperParser(); // doc values only work on non-analyzed content final BuilderContext ctx = new BuilderContext(indexService.getIndexSettings().getSettings(), new ContentPath(1)); try { |