|
59 | 59 | import java.io.IOException; |
60 | 60 | import java.util.ArrayList; |
61 | 61 | import java.util.Collections; |
62 | | -import java.util.HashMap; |
63 | 62 | import java.util.List; |
64 | 63 | import java.util.Map; |
65 | 64 |
|
66 | 65 | import static org.elasticsearch.common.lucene.search.Queries.fixNegativeQueryIfNeeded; |
67 | 66 | import static org.elasticsearch.common.lucene.search.Queries.newLenientFieldQuery; |
68 | 67 | import static org.elasticsearch.common.lucene.search.Queries.newUnmappedFieldQuery; |
69 | 68 | import static org.elasticsearch.index.search.QueryParserHelper.resolveMappingField; |
| 69 | +import static org.elasticsearch.index.search.QueryParserHelper.resolveMappingFields; |
70 | 70 |
|
71 | 71 | /** |
72 | 72 | * A {@link XQueryParser} that uses the {@link MapperService} in order to build smarter |
@@ -266,15 +266,7 @@ private Map<String, Float> extractMultiFields(String field, boolean quoted) { |
266 | 266 | // Filters metadata fields if all fields are requested |
267 | 267 | return resolveMappingField(context, field, 1.0f, !allFields, !multiFields, quoted ? quoteFieldSuffix : null); |
268 | 268 | } else if (quoted && quoteFieldSuffix != null) { |
269 | | - Map<String, Float> newFields = new HashMap<>(fieldsAndWeights.size()); |
270 | | - for (Map.Entry<String, Float> entry : fieldsAndWeights.entrySet()) { |
271 | | - String fieldName = entry.getKey(); |
272 | | - if (context.fieldMapper(entry.getKey() + quoteFieldSuffix) != null) { |
273 | | - fieldName += quoteFieldSuffix; |
274 | | - } |
275 | | - newFields.put(fieldName, entry.getValue()); |
276 | | - } |
277 | | - return newFields; |
| 269 | + return resolveMappingFields(context, fieldsAndWeights, quoteFieldSuffix); |
278 | 270 | } else { |
279 | 271 | return fieldsAndWeights; |
280 | 272 | } |
|
0 commit comments