summaryrefslogtreecommitdiff
path: root/core/src/test/java/org/elasticsearch/index/mapper/string/SimpleStringMappingTests.java
diff options
context:
space:
mode:
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.java82
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 {