From 7cb4baebf5e6e5314fe7544b29234b4369509042 Mon Sep 17 00:00:00 2001 From: Simon Willnauer Date: Mon, 8 Feb 2016 17:46:27 +0100 Subject: [PATCH 1/2] Add field names to several mapping errors Closes #16378 --- .../index/mapper/core/StringFieldMapper.java | 12 ++++++------ .../elasticsearch/index/mapper/core/TypeParsers.java | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/index/mapper/core/StringFieldMapper.java b/core/src/main/java/org/elasticsearch/index/mapper/core/StringFieldMapper.java index 05ef8c88e0c..52739e0b6f8 100644 --- a/core/src/main/java/org/elasticsearch/index/mapper/core/StringFieldMapper.java +++ b/core/src/main/java/org/elasticsearch/index/mapper/core/StringFieldMapper.java @@ -145,8 +145,8 @@ public class StringFieldMapper extends FieldMapper implements AllFieldMapper.Inc public static class TypeParser implements Mapper.TypeParser { @Override - public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { - StringFieldMapper.Builder builder = stringField(name); + public Mapper.Builder parse(String fieldName, Map node, ParserContext parserContext) throws MapperParsingException { + StringFieldMapper.Builder builder = stringField(fieldName); // hack for the fact that string can't just accept true/false for // the index property and still accepts no/not_analyzed/analyzed final Object index = node.remove("index"); @@ -165,10 +165,10 @@ public class StringFieldMapper extends FieldMapper implements AllFieldMapper.Inc node.put("index", false); break; default: - throw new IllegalArgumentException("Can't parse [index] value [" + index + "], expected [true], [false], [no], [not_analyzed] or [analyzed]"); + throw new IllegalArgumentException("Can't parse [index] value [" + index + "] for field [" + fieldName + "], expected [true], [false], [no], [not_analyzed] or [analyzed]"); } } - parseTextField(builder, name, node, parserContext); + parseTextField(builder, fieldName, node, parserContext); for (Iterator> iterator = node.entrySet().iterator(); iterator.hasNext();) { Map.Entry entry = iterator.next(); String propName = Strings.toUnderscoreCase(entry.getKey()); @@ -182,7 +182,7 @@ public class StringFieldMapper extends FieldMapper implements AllFieldMapper.Inc } else if (propName.equals("search_quote_analyzer")) { NamedAnalyzer analyzer = parserContext.analysisService().analyzer(propNode.toString()); if (analyzer == null) { - throw new MapperParsingException("Analyzer [" + propNode.toString() + "] not found for field [" + name + "]"); + throw new MapperParsingException("Analyzer [" + propNode.toString() + "] not found for field [" + fieldName + "]"); } builder.searchQuotedAnalyzer(analyzer); iterator.remove(); @@ -207,7 +207,7 @@ public class StringFieldMapper extends FieldMapper implements AllFieldMapper.Inc } else if (propName.equals("ignore_above")) { builder.ignoreAbove(XContentMapValues.nodeIntegerValue(propNode, -1)); iterator.remove(); - } else if (parseMultiField(builder, name, parserContext, propName, propNode)) { + } else if (parseMultiField(builder, fieldName, parserContext, propName, propNode)) { iterator.remove(); } } diff --git a/core/src/main/java/org/elasticsearch/index/mapper/core/TypeParsers.java b/core/src/main/java/org/elasticsearch/index/mapper/core/TypeParsers.java index e2f59b3ef4f..6f83b7d75d4 100644 --- a/core/src/main/java/org/elasticsearch/index/mapper/core/TypeParsers.java +++ b/core/src/main/java/org/elasticsearch/index/mapper/core/TypeParsers.java @@ -336,7 +336,7 @@ public class TypeParsers { case "false": return false; default: - throw new IllegalArgumentException("Can't parse [index] value [" + index + "], expected [true] or [false]"); + throw new IllegalArgumentException("Can't parse [index] value [" + index + "] for field [" + fieldName + "], expected [true] or [false]"); } } else { final String normalizedIndex = Strings.toUnderscoreCase(index); @@ -349,7 +349,7 @@ public class TypeParsers { case "no": return false; default: - throw new IllegalArgumentException("Can't parse [index] value [" + index + "], expected [true], [false], [no], [not_analyzed] or [analyzed]"); + throw new IllegalArgumentException("Can't parse [index] value [" + index + "] for field [" + fieldName + "], expected [true], [false], [no], [not_analyzed] or [analyzed]"); } } } @@ -388,7 +388,7 @@ public class TypeParsers { } SimilarityProvider similarityProvider = parserContext.getSimilarity(value); if (similarityProvider == null) { - throw new MapperParsingException("Unknown Similarity type [" + value + "] for [" + name + "]"); + throw new MapperParsingException("Unknown Similarity type [" + value + "] for field [" + name + "]"); } return similarityProvider; } From 35fc6006f754eb5468506ecbc30cf17be4e7f318 Mon Sep 17 00:00:00 2001 From: Simon Willnauer Date: Tue, 9 Feb 2016 15:24:57 +0100 Subject: [PATCH 2/2] fix similarity tests --- .../org/elasticsearch/index/similarity/SimilarityTests.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/test/java/org/elasticsearch/index/similarity/SimilarityTests.java b/core/src/test/java/org/elasticsearch/index/similarity/SimilarityTests.java index 29fb9b9a04f..a87fe2e654d 100644 --- a/core/src/test/java/org/elasticsearch/index/similarity/SimilarityTests.java +++ b/core/src/test/java/org/elasticsearch/index/similarity/SimilarityTests.java @@ -228,7 +228,7 @@ public class SimilarityTests extends ESSingleNodeTestCase { indexService.mapperService().documentMapperParser().parse("type", new CompressedXContent(mapping)); fail("Expected MappingParsingException"); } catch (MapperParsingException e) { - assertThat(e.getMessage(), equalTo("Unknown Similarity type [unknown_similarity] for [field1]")); + assertThat(e.getMessage(), equalTo("Unknown Similarity type [unknown_similarity] for field [field1]")); } } @@ -255,7 +255,7 @@ public class SimilarityTests extends ESSingleNodeTestCase { parser.parse("type", new CompressedXContent(mapping)); fail("Expected MappingParsingException"); } catch (MapperParsingException e) { - assertThat(e.getMessage(), equalTo("Unknown Similarity type [default] for [field1]")); + assertThat(e.getMessage(), equalTo("Unknown Similarity type [default] for field [field1]")); } } }