Mappings: Simplified mapper lookups

Due to https://github.com/elastic/elasticsearch/pull/10705

We need to adapt the mapper attachment plugin to version 2.0.0

Closes #125.
This commit is contained in:
David Pilato 2015-04-25 16:29:35 +02:00
parent 7e2a9dbf0c
commit 65a83e63d3
9 changed files with 80 additions and 80 deletions

View File

@ -391,7 +391,7 @@ public class AttachmentMapper extends AbstractFieldMapper<Object> {
}
@Override
public void parse(ParseContext context) throws IOException {
public Mapper parse(ParseContext context) throws IOException {
byte[] content = null;
String contentType = null;
int indexedChars = defaultIndexedChars;
@ -454,7 +454,7 @@ public class AttachmentMapper extends AbstractFieldMapper<Object> {
} else {
logger.warn("Tika can not be initialized with the current Locale [{}] on the current JVM [{}]",
Locale.getDefault().getLanguage(), Constants.JAVA_VERSION);
return;
return null;
}
}
// Set the maximum length of strings returned by the parseToString method, -1 sets no limit
@ -473,7 +473,7 @@ public class AttachmentMapper extends AbstractFieldMapper<Object> {
logger.debug("Failed to extract [{}] characters of text for [{}]: [{}]", indexedChars, name, e.getMessage());
logger.trace("exception caught", e);
}
return;
return null;
}
context = context.createExternalValueContext(parsedContent);
@ -580,6 +580,8 @@ public class AttachmentMapper extends AbstractFieldMapper<Object> {
if (copyTo != null) {
copyTo.parse(context);
}
return null;
}
@Override
@ -588,7 +590,7 @@ public class AttachmentMapper extends AbstractFieldMapper<Object> {
}
@Override
public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException {
public void merge(Mapper mergeWith, MergeResult mergeResult) throws MergeMappingException {
// ignore this for now
}

View File

@ -113,7 +113,7 @@ public class StandaloneRunner extends CliTool {
terminal.println("## Extracted text");
terminal.println("--------------------- BEGIN -----------------------");
terminal.println("%s", doc.get(docMapper.mappers().smartName("file").mapper().names().indexName()));
terminal.println("%s", doc.get(docMapper.mappers().getMapper("file").names().indexName()));
terminal.println("---------------------- END ------------------------");
terminal.println("## Metadata");
printMetadataContent(doc, AttachmentMapper.FieldNames.AUTHOR);
@ -129,7 +129,7 @@ public class StandaloneRunner extends CliTool {
}
private void printMetadataContent(ParseContext.Document doc, String field) {
terminal.println("- %s: %s", field, doc.get(docMapper.mappers().smartName("file." + field).mapper().names().indexName()));
terminal.println("- %s: %s", field, doc.get(docMapper.mappers().getMapper("file." + field).names().indexName()));
}
public static byte[] copyToBytes(Path path) throws IOException {

View File

@ -49,6 +49,6 @@ public class DateAttachmentMapperTests extends AttachmentUnitTestCase {
DocumentMapper docMapper = mapperParser.parse(mapping);
// Our mapping should be kept as a String
assertThat(docMapper.mappers().fullName("file.date").mapper(), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().getMapper("file.date"), instanceOf(StringFieldMapper.class));
}
}

View File

@ -61,19 +61,19 @@ public class EncryptedDocMapperTest extends AttachmentUnitTestCase {
.endObject().bytes();
ParseContext.Document doc = docMapper.parse(json).rootDoc();
assertThat(doc.get(docMapper.mappers().smartName("file1").mapper().names().indexName()), containsString("World"));
assertThat(doc.get(docMapper.mappers().smartName("file1.title").mapper().names().indexName()), equalTo("Hello"));
assertThat(doc.get(docMapper.mappers().smartName("file1.author").mapper().names().indexName()), equalTo("kimchy"));
assertThat(doc.get(docMapper.mappers().smartName("file1.keywords").mapper().names().indexName()), equalTo("elasticsearch,cool,bonsai"));
assertThat(doc.get(docMapper.mappers().smartName("file1.content_type").mapper().names().indexName()), equalTo("text/html; charset=ISO-8859-1"));
assertThat(doc.getField(docMapper.mappers().smartName("file1.content_length").mapper().names().indexName()).numericValue().longValue(), is(344L));
assertThat(doc.get(docMapper.mappers().getMapper("file1").names().indexName()), containsString("World"));
assertThat(doc.get(docMapper.mappers().getMapper("file1.title").names().indexName()), equalTo("Hello"));
assertThat(doc.get(docMapper.mappers().getMapper("file1.author").names().indexName()), equalTo("kimchy"));
assertThat(doc.get(docMapper.mappers().getMapper("file1.keywords").names().indexName()), equalTo("elasticsearch,cool,bonsai"));
assertThat(doc.get(docMapper.mappers().getMapper("file1.content_type").names().indexName()), equalTo("text/html; charset=ISO-8859-1"));
assertThat(doc.getField(docMapper.mappers().getMapper("file1.content_length").names().indexName()).numericValue().longValue(), is(344L));
assertThat(doc.get(docMapper.mappers().smartName("file2").mapper().names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().smartName("file2.title").mapper().names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().smartName("file2.author").mapper().names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().smartName("file2.keywords").mapper().names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().smartName("file2.content_type").mapper().names().indexName()), nullValue());
assertThat(doc.getField(docMapper.mappers().smartName("file2.content_length").mapper().names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().getMapper("file2").names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().getMapper("file2.title").names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().getMapper("file2.author").names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().getMapper("file2.keywords").names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().getMapper("file2.content_type").names().indexName()), nullValue());
assertThat(doc.getField(docMapper.mappers().getMapper("file2.content_length").names().indexName()), nullValue());
}
@Test
@ -94,19 +94,19 @@ public class EncryptedDocMapperTest extends AttachmentUnitTestCase {
.endObject().bytes();
ParseContext.Document doc = docMapper.parse(json).rootDoc();
assertThat(doc.get(docMapper.mappers().smartName("file1").mapper().names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().smartName("file1.title").mapper().names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().smartName("file1.author").mapper().names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().smartName("file1.keywords").mapper().names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().smartName("file1.content_type").mapper().names().indexName()), nullValue());
assertThat(doc.getField(docMapper.mappers().smartName("file1.content_length").mapper().names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().getMapper("file1").names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().getMapper("file1.title").names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().getMapper("file1.author").names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().getMapper("file1.keywords").names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().getMapper("file1.content_type").names().indexName()), nullValue());
assertThat(doc.getField(docMapper.mappers().getMapper("file1.content_length").names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().smartName("file2").mapper().names().indexName()), containsString("World"));
assertThat(doc.get(docMapper.mappers().smartName("file2.title").mapper().names().indexName()), equalTo("Hello"));
assertThat(doc.get(docMapper.mappers().smartName("file2.author").mapper().names().indexName()), equalTo("kimchy"));
assertThat(doc.get(docMapper.mappers().smartName("file2.keywords").mapper().names().indexName()), equalTo("elasticsearch,cool,bonsai"));
assertThat(doc.get(docMapper.mappers().smartName("file2.content_type").mapper().names().indexName()), equalTo("text/html; charset=ISO-8859-1"));
assertThat(doc.getField(docMapper.mappers().smartName("file2.content_length").mapper().names().indexName()).numericValue().longValue(), is(344L));
assertThat(doc.get(docMapper.mappers().getMapper("file2").names().indexName()), containsString("World"));
assertThat(doc.get(docMapper.mappers().getMapper("file2.title").names().indexName()), equalTo("Hello"));
assertThat(doc.get(docMapper.mappers().getMapper("file2.author").names().indexName()), equalTo("kimchy"));
assertThat(doc.get(docMapper.mappers().getMapper("file2.keywords").names().indexName()), equalTo("elasticsearch,cool,bonsai"));
assertThat(doc.get(docMapper.mappers().getMapper("file2.content_type").names().indexName()), equalTo("text/html; charset=ISO-8859-1"));
assertThat(doc.getField(docMapper.mappers().getMapper("file2.content_length").names().indexName()).numericValue().longValue(), is(344L));
}
@Test(expected = MapperParsingException.class)
@ -127,19 +127,19 @@ public class EncryptedDocMapperTest extends AttachmentUnitTestCase {
.endObject().bytes();
ParseContext.Document doc = docMapper.parse(json).rootDoc();
assertThat(doc.get(docMapper.mappers().smartName("file1").mapper().names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().smartName("file1.title").mapper().names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().smartName("file1.author").mapper().names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().smartName("file1.keywords").mapper().names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().smartName("file1.content_type").mapper().names().indexName()), nullValue());
assertThat(doc.getField(docMapper.mappers().smartName("file1.content_length").mapper().names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().getMapper("file1").names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().getMapper("file1.title").names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().getMapper("file1.author").names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().getMapper("file1.keywords").names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().getMapper("file1.content_type").names().indexName()), nullValue());
assertThat(doc.getField(docMapper.mappers().getMapper("file1.content_length").names().indexName()), nullValue());
assertThat(doc.get(docMapper.mappers().smartName("file2").mapper().names().indexName()), containsString("World"));
assertThat(doc.get(docMapper.mappers().smartName("file2.title").mapper().names().indexName()), equalTo("Hello"));
assertThat(doc.get(docMapper.mappers().smartName("file2.author").mapper().names().indexName()), equalTo("kimchy"));
assertThat(doc.get(docMapper.mappers().smartName("file2.keywords").mapper().names().indexName()), equalTo("elasticsearch,cool,bonsai"));
assertThat(doc.get(docMapper.mappers().smartName("file2.content_type").mapper().names().indexName()), equalTo("text/html; charset=ISO-8859-1"));
assertThat(doc.getField(docMapper.mappers().smartName("file2.content_length").mapper().names().indexName()).numericValue().longValue(), is(344L));
assertThat(doc.get(docMapper.mappers().getMapper("file2").names().indexName()), containsString("World"));
assertThat(doc.get(docMapper.mappers().getMapper("file2.title").names().indexName()), equalTo("Hello"));
assertThat(doc.get(docMapper.mappers().getMapper("file2.author").names().indexName()), equalTo("kimchy"));
assertThat(doc.get(docMapper.mappers().getMapper("file2.keywords").names().indexName()), equalTo("elasticsearch,cool,bonsai"));
assertThat(doc.get(docMapper.mappers().getMapper("file2.content_type").names().indexName()), equalTo("text/html; charset=ISO-8859-1"));
assertThat(doc.getField(docMapper.mappers().getMapper("file2.content_length").names().indexName()).numericValue().longValue(), is(344L));
}
}

View File

@ -57,7 +57,7 @@ public class LanguageDetectionAttachmentMapperTests extends AttachmentUnitTestCa
String mapping = copyToStringFromClasspath("/org/elasticsearch/index/mapper/attachment/test/unit/language/language-mapping.json");
docMapper = mapperParser.parse(mapping);
assertThat(docMapper.mappers().fullName("file.language").mapper(), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().getMapper("file.language"), instanceOf(StringFieldMapper.class));
}
private void testLanguage(String filename, String expected, String... forcedLanguage) throws IOException {
@ -79,7 +79,7 @@ public class LanguageDetectionAttachmentMapperTests extends AttachmentUnitTestCa
ParseContext.Document doc = docMapper.parse(xcb.bytes()).rootDoc();
// Our mapping should be kept as a String
assertThat(doc.get(docMapper.mappers().smartName("file.language").mapper().names().indexName()), equalTo(expected));
assertThat(doc.get(docMapper.mappers().getMapper("file.language").names().indexName()), equalTo(expected));
}
@Test
@ -132,6 +132,6 @@ public class LanguageDetectionAttachmentMapperTests extends AttachmentUnitTestCa
ParseContext.Document doc = docMapper.parse(xcb.bytes()).rootDoc();
// Our mapping should be kept as a String
assertThat(doc.get(docMapper.mappers().smartName("file.language").mapper().names().indexName()), equalTo("en"));
assertThat(doc.get(docMapper.mappers().getMapper("file.language").names().indexName()), equalTo("en"));
}
}

View File

@ -60,18 +60,18 @@ public class MetadataMapperTest extends AttachmentUnitTestCase {
.endObject().bytes();
ParseContext.Document doc = docMapper.parse(json).rootDoc();
assertThat(doc.get(docMapper.mappers().smartName("file").mapper().names().indexName()), containsString("World"));
assertThat(doc.get(docMapper.mappers().smartName("file.name").mapper().names().indexName()), equalTo(filename));
assertThat(doc.get(docMapper.mappers().getMapper("file").names().indexName()), containsString("World"));
assertThat(doc.get(docMapper.mappers().getMapper("file.name").names().indexName()), equalTo(filename));
if (expectedDate == null) {
assertThat(doc.getField(docMapper.mappers().smartName("file.date").mapper().names().indexName()), nullValue());
assertThat(doc.getField(docMapper.mappers().getMapper("file.date").names().indexName()), nullValue());
} else {
assertThat(doc.getField(docMapper.mappers().smartName("file.date").mapper().names().indexName()).numericValue().longValue(), is(expectedDate));
assertThat(doc.getField(docMapper.mappers().getMapper("file.date").names().indexName()).numericValue().longValue(), is(expectedDate));
}
assertThat(doc.get(docMapper.mappers().smartName("file.title").mapper().names().indexName()), equalTo("Hello"));
assertThat(doc.get(docMapper.mappers().smartName("file.author").mapper().names().indexName()), equalTo("kimchy"));
assertThat(doc.get(docMapper.mappers().smartName("file.keywords").mapper().names().indexName()), equalTo("elasticsearch,cool,bonsai"));
assertThat(doc.get(docMapper.mappers().smartName("file.content_type").mapper().names().indexName()), equalTo("text/html; charset=ISO-8859-1"));
assertThat(doc.getField(docMapper.mappers().smartName("file.content_length").mapper().names().indexName()).numericValue().longValue(), is(expectedLength));
assertThat(doc.get(docMapper.mappers().getMapper("file.title").names().indexName()), equalTo("Hello"));
assertThat(doc.get(docMapper.mappers().getMapper("file.author").names().indexName()), equalTo("kimchy"));
assertThat(doc.get(docMapper.mappers().getMapper("file.keywords").names().indexName()), equalTo("elasticsearch,cool,bonsai"));
assertThat(doc.get(docMapper.mappers().getMapper("file.content_type").names().indexName()), equalTo("text/html; charset=ISO-8859-1"));
assertThat(doc.getField(docMapper.mappers().getMapper("file.content_length").names().indexName()).numericValue().longValue(), is(expectedLength));
}
@Test

View File

@ -29,7 +29,6 @@ import org.elasticsearch.index.mapper.attachment.AttachmentMapper;
import org.elasticsearch.index.mapper.attachment.test.MapperTestUtils;
import org.elasticsearch.index.mapper.core.DateFieldMapper;
import org.elasticsearch.index.mapper.core.StringFieldMapper;
import org.elasticsearch.test.ElasticsearchTestCase;
import org.elasticsearch.threadpool.ThreadPool;
import org.junit.After;
import org.junit.Before;
@ -64,26 +63,26 @@ public class MultifieldAttachmentMapperTests extends AttachmentUnitTestCase {
DocumentMapper docMapper = mapperParser.parse(mapping);
assertThat(docMapper.mappers().fullName("file").mapper(), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().fullName("file.suggest").mapper(), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().getMapper("file"), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().getMapper("file.suggest"), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().fullName("file.date").mapper(), instanceOf(DateFieldMapper.class));
assertThat(docMapper.mappers().fullName("file.date.string").mapper(), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().getMapper("file.date"), instanceOf(DateFieldMapper.class));
assertThat(docMapper.mappers().getMapper("file.date.string"), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().fullName("file.title").mapper(), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().fullName("file.title.suggest").mapper(), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().getMapper("file.title"), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().getMapper("file.title.suggest"), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().fullName("file.name").mapper(), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().fullName("file.name.suggest").mapper(), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().getMapper("file.name"), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().getMapper("file.name.suggest"), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().fullName("file.author").mapper(), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().fullName("file.author.suggest").mapper(), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().getMapper("file.author"), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().getMapper("file.author.suggest"), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().fullName("file.keywords").mapper(), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().fullName("file.keywords.suggest").mapper(), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().getMapper("file.keywords"), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().getMapper("file.keywords.suggest"), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().fullName("file.content_type").mapper(), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().fullName("file.content_type.suggest").mapper(), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().getMapper("file.content_type"), instanceOf(StringFieldMapper.class));
assertThat(docMapper.mappers().getMapper("file.content_type.suggest"), instanceOf(StringFieldMapper.class));
}
@Test

View File

@ -25,7 +25,6 @@ import org.elasticsearch.index.mapper.DocumentMapperParser;
import org.elasticsearch.index.mapper.ParseContext;
import org.elasticsearch.index.mapper.attachment.AttachmentMapper;
import org.elasticsearch.index.mapper.attachment.test.MapperTestUtils;
import org.elasticsearch.test.ElasticsearchTestCase;
import org.junit.Before;
import org.junit.Test;
@ -58,9 +57,9 @@ public class SimpleAttachmentMapperTests extends AttachmentUnitTestCase {
ParseContext.Document doc = docMapper.parse(json).rootDoc();
assertThat(doc.get(docMapper.mappers().smartName("file.content_type").mapper().names().indexName()), equalTo("application/xhtml+xml"));
assertThat(doc.get(docMapper.mappers().smartName("file.title").mapper().names().indexName()), equalTo("XHTML test document"));
assertThat(doc.get(docMapper.mappers().smartName("file").mapper().names().indexName()), containsString("This document tests the ability of Apache Tika to extract content"));
assertThat(doc.get(docMapper.mappers().getMapper("file.content_type").names().indexName()), equalTo("application/xhtml+xml"));
assertThat(doc.get(docMapper.mappers().getMapper("file.title").names().indexName()), equalTo("XHTML test document"));
assertThat(doc.get(docMapper.mappers().getMapper("file").names().indexName()), containsString("This document tests the ability of Apache Tika to extract content"));
// re-parse it
String builtMapping = docMapper.mappingSource().string();
@ -70,8 +69,8 @@ public class SimpleAttachmentMapperTests extends AttachmentUnitTestCase {
doc = docMapper.parse(json).rootDoc();
assertThat(doc.get(docMapper.mappers().smartName("file.content_type").mapper().names().indexName()), equalTo("application/xhtml+xml"));
assertThat(doc.get(docMapper.mappers().smartName("file.title").mapper().names().indexName()), equalTo("XHTML test document"));
assertThat(doc.get(docMapper.mappers().smartName("file").mapper().names().indexName()), containsString("This document tests the ability of Apache Tika to extract content"));
assertThat(doc.get(docMapper.mappers().getMapper("file.content_type").names().indexName()), equalTo("application/xhtml+xml"));
assertThat(doc.get(docMapper.mappers().getMapper("file.title").names().indexName()), equalTo("XHTML test document"));
assertThat(doc.get(docMapper.mappers().getMapper("file").names().indexName()), containsString("This document tests the ability of Apache Tika to extract content"));
}
}

View File

@ -143,8 +143,8 @@ public class VariousDocTest extends AttachmentUnitTestCase {
ParseContext.Document doc = docMapper.parse(json).rootDoc();
if (!errorExpected) {
assertThat(doc.get(docMapper.mappers().smartName("file").mapper().names().indexName()), not(isEmptyOrNullString()));
logger.debug("-> extracted content: {}", doc.get(docMapper.mappers().smartName("file").mapper().names().indexName()));
assertThat(doc.get(docMapper.mappers().getMapper("file").names().indexName()), not(isEmptyOrNullString()));
logger.debug("-> extracted content: {}", doc.get(docMapper.mappers().getMapper("file").names().indexName()));
logger.debug("-> extracted metadata:");
printMetadataContent(doc, AUTHOR);
printMetadataContent(doc, CONTENT_LENGTH);
@ -158,6 +158,6 @@ public class VariousDocTest extends AttachmentUnitTestCase {
}
private void printMetadataContent(ParseContext.Document doc, String field) {
logger.debug("- [{}]: [{}]", field, doc.get(docMapper.mappers().smartName("file." + field).mapper().names().indexName()));
logger.debug("- [{}]: [{}]", field, doc.get(docMapper.mappers().getMapper("file." + field).names().indexName()));
}
}