return; } else if (start == XContentParser.Token.START_OBJECT) { RangeFieldType fieldType = fieldType(); RangeType rangeType = fieldType.rangeType; String fieldName = null; name() + "], with unknown parameter [" + fieldName + "]"); } else if (fieldType().rangeType == RangeType.IP && start == XContentParser.Token.VALUE_STRING) { range = parseIpRangeFromCidr(parser); } else { throw new MapperParsingException("error parsing field [" + name() + "], expected an object but got " + parser.currentName()); boolean docValued = fieldType.hasDocValues(); boolean stored = fieldType.stored(); fields.addAll(fieldType().rangeType.createFields(context, name(), range, indexed, docValued, stored)); if (docValued == false && (indexed || stored)) { createFieldNamesField(context, fields);
@Override public RangeFieldMapper build(BuilderContext context) { setupFieldType(context); return new RangeFieldMapper(name, fieldType, defaultFieldType, coerce(context), includeInAll, context.indexSettings(), multiFieldsBuilder.build(this, context), copyTo); } }
XContentParser parser = context.parser(); if (parser.currentToken() == XContentParser.Token.START_OBJECT) { RangeFieldType fieldType = fieldType(); RangeType rangeType = fieldType.rangeType; String fieldName = null; name() + "], with unknown parameter [" + fieldName + "]"); } else { throw new MapperParsingException("error parsing field [" + name() + "], expected an object but got " + parser.currentName()); boolean docValued = fieldType.hasDocValues(); boolean stored = fieldType.stored(); fields.addAll(fieldType().rangeType.createFields(name(), range, indexed, docValued, stored));
@Override protected void doXContentBody(XContentBuilder builder, boolean includeDefaults, Params params) throws IOException { super.doXContentBody(builder, includeDefaults, params); if (fieldType().rangeType == RangeType.DATE && (includeDefaults || (fieldType().dateTimeFormatter() != null && fieldType().dateTimeFormatter().pattern().equals(DateFieldMapper.DEFAULT_DATE_TIME_FORMATTER.pattern()) == false))) { builder.field("format", fieldType().dateTimeFormatter().pattern()); } if (fieldType().rangeType == RangeType.DATE && (includeDefaults || (fieldType().dateTimeFormatter() != null && fieldType().dateTimeFormatter().locale() != Locale.ROOT))) { builder.field("locale", fieldType().dateTimeFormatter().locale()); } if (includeDefaults || coerce.explicit()) { builder.field("coerce", coerce.value()); } if (includeInAll != null) { builder.field("include_in_all", includeInAll); } else if (includeDefaults) { builder.field("include_in_all", false); } }
byte[] min = extraction.range.lowerPoint; byte[] max = extraction.range.upperPoint; doc.add(new BinaryRange(rangeFieldMapper.name(), encodeRange(extraction.range.fieldName, min, max)));
@Override public FieldMapper updateFieldType(Map<String, MappedFieldType> fullNameToFieldType) { PercolatorFieldMapper updated = (PercolatorFieldMapper) super.updateFieldType(fullNameToFieldType); KeywordFieldMapper queryTermsUpdated = (KeywordFieldMapper) queryTermsField.updateFieldType(fullNameToFieldType); KeywordFieldMapper extractionResultUpdated = (KeywordFieldMapper) extractionResultField.updateFieldType(fullNameToFieldType); BinaryFieldMapper queryBuilderUpdated = (BinaryFieldMapper) queryBuilderField.updateFieldType(fullNameToFieldType); RangeFieldMapper rangeFieldMapperUpdated = (RangeFieldMapper) rangeFieldMapper.updateFieldType(fullNameToFieldType); NumberFieldMapper msmFieldMapperUpdated = (NumberFieldMapper) minimumShouldMatchFieldMapper.updateFieldType(fullNameToFieldType); if (updated == this && queryTermsUpdated == queryTermsField && extractionResultUpdated == extractionResultField && queryBuilderUpdated == queryBuilderField && rangeFieldMapperUpdated == rangeFieldMapper) { return this; } if (updated == this) { updated = (PercolatorFieldMapper) updated.clone(); } updated.queryTermsField = queryTermsUpdated; updated.extractionResultField = extractionResultUpdated; updated.queryBuilderField = queryBuilderUpdated; updated.rangeFieldMapper = rangeFieldMapperUpdated; updated.minimumShouldMatchFieldMapper = msmFieldMapperUpdated; return updated; }
@Override protected void doXContentBody(XContentBuilder builder, boolean includeDefaults, Params params) throws IOException { super.doXContentBody(builder, includeDefaults, params); if (fieldType().rangeType == RangeType.DATE && (includeDefaults || (fieldType().dateTimeFormatter() != null && fieldType().dateTimeFormatter().format().equals(DateFieldMapper.DEFAULT_DATE_TIME_FORMATTER.format()) == false))) { builder.field("format", fieldType().dateTimeFormatter().format()); } if (fieldType().rangeType == RangeType.DATE && (includeDefaults || (fieldType().dateTimeFormatter() != null && fieldType().dateTimeFormatter().locale() != Locale.ROOT))) { builder.field("locale", fieldType().dateTimeFormatter().locale()); } if (includeDefaults || coerce.explicit()) { builder.field("coerce", coerce.value()); } if (includeInAll != null) { builder.field("include_in_all", includeInAll); } else if (includeDefaults) { builder.field("include_in_all", false); } }
byte[] min = extraction.range.lowerPoint; byte[] max = extraction.range.upperPoint; doc.add(new BinaryRange(rangeFieldMapper.name(), encodeRange(extraction.range.fieldName, min, max)));
@Override public FieldMapper updateFieldType(Map<String, MappedFieldType> fullNameToFieldType) { PercolatorFieldMapper updated = (PercolatorFieldMapper) super.updateFieldType(fullNameToFieldType); KeywordFieldMapper queryTermsUpdated = (KeywordFieldMapper) queryTermsField.updateFieldType(fullNameToFieldType); KeywordFieldMapper extractionResultUpdated = (KeywordFieldMapper) extractionResultField.updateFieldType(fullNameToFieldType); BinaryFieldMapper queryBuilderUpdated = (BinaryFieldMapper) queryBuilderField.updateFieldType(fullNameToFieldType); RangeFieldMapper rangeFieldMapperUpdated = (RangeFieldMapper) rangeFieldMapper.updateFieldType(fullNameToFieldType); NumberFieldMapper msmFieldMapperUpdated = (NumberFieldMapper) minimumShouldMatchFieldMapper.updateFieldType(fullNameToFieldType); if (updated == this && queryTermsUpdated == queryTermsField && extractionResultUpdated == extractionResultField && queryBuilderUpdated == queryBuilderField && rangeFieldMapperUpdated == rangeFieldMapper) { return this; } if (updated == this) { updated = (PercolatorFieldMapper) updated.clone(); } updated.queryTermsField = queryTermsUpdated; updated.extractionResultField = extractionResultUpdated; updated.queryBuilderField = queryBuilderUpdated; updated.rangeFieldMapper = rangeFieldMapperUpdated; updated.minimumShouldMatchFieldMapper = msmFieldMapperUpdated; return updated; }
final XContentParser.Token start = parser.currentToken(); if (start == XContentParser.Token.START_OBJECT) { RangeFieldType fieldType = fieldType(); RangeType rangeType = fieldType.rangeType; String fieldName = null; name() + "], with unknown parameter [" + fieldName + "]"); } else if (fieldType().rangeType == RangeType.IP && start == XContentParser.Token.VALUE_STRING) { range = parseIpRangeFromCidr(parser); } else { throw new MapperParsingException("error parsing field [" + name() + "], expected an object but got " + parser.currentName()); boolean docValued = fieldType.hasDocValues(); boolean stored = fieldType.stored(); fields.addAll(fieldType().rangeType.createFields(context, name(), range, indexed, docValued, stored)); if (docValued == false && (indexed || stored)) { createFieldNamesField(context, fields);
@Override protected void doXContentBody(XContentBuilder builder, boolean includeDefaults, Params params) throws IOException { super.doXContentBody(builder, includeDefaults, params); if (fieldType().rangeType == RangeType.DATE && (includeDefaults || (fieldType().dateTimeFormatter() != null && fieldType().dateTimeFormatter().format().equals(DateFieldMapper.DEFAULT_DATE_TIME_FORMATTER.format()) == false))) { builder.field("format", fieldType().dateTimeFormatter().format()); } if (fieldType().rangeType == RangeType.DATE && (includeDefaults || (fieldType().dateTimeFormatter() != null && fieldType().dateTimeFormatter().locale() != Locale.ROOT))) { builder.field("locale", fieldType().dateTimeFormatter().locale()); } if (includeDefaults || coerce.explicit()) { builder.field("coerce", coerce.value()); } if (includeInAll != null) { builder.field("include_in_all", includeInAll); } else if (includeDefaults) { builder.field("include_in_all", false); } }
@Override public RangeFieldMapper build(BuilderContext context) { setupFieldType(context); return new RangeFieldMapper(name, fieldType, defaultFieldType, coerce(context), includeInAll, context.indexSettings(), multiFieldsBuilder.build(this, context), copyTo); } }
return; } else if (start == XContentParser.Token.START_OBJECT) { RangeFieldType fieldType = fieldType(); RangeType rangeType = fieldType.rangeType; String fieldName = null; name() + "], with unknown parameter [" + fieldName + "]"); } else if (fieldType().rangeType == RangeType.IP && start == XContentParser.Token.VALUE_STRING) { range = parseIpRangeFromCidr(parser); } else { throw new MapperParsingException("error parsing field [" + name() + "], expected an object but got " + parser.currentName()); boolean docValued = fieldType.hasDocValues(); boolean stored = fieldType.stored(); fields.addAll(fieldType().rangeType.createFields(context, name(), range, indexed, docValued, stored)); if (docValued == false && (indexed || stored)) { createFieldNamesField(context, fields);
@Override protected void doXContentBody(XContentBuilder builder, boolean includeDefaults, Params params) throws IOException { super.doXContentBody(builder, includeDefaults, params); if (fieldType().rangeType == RangeType.DATE && (includeDefaults || (fieldType().dateTimeFormatter() != null && fieldType().dateTimeFormatter().format().equals(DateFieldMapper.DEFAULT_DATE_TIME_FORMATTER.format()) == false))) { builder.field("format", fieldType().dateTimeFormatter().format()); } if (fieldType().rangeType == RangeType.DATE && (includeDefaults || (fieldType().dateTimeFormatter() != null && fieldType().dateTimeFormatter().locale() != Locale.ROOT))) { builder.field("locale", fieldType().dateTimeFormatter().locale()); } if (includeDefaults || coerce.explicit()) { builder.field("coerce", coerce.value()); } if (includeInAll != null) { builder.field("include_in_all", includeInAll); } else if (includeDefaults) { builder.field("include_in_all", false); } }
@Override public RangeFieldMapper build(BuilderContext context) { setupFieldType(context); return new RangeFieldMapper(name, fieldType, defaultFieldType, coerce(context), includeInAll, context.indexSettings(), multiFieldsBuilder.build(this, context), copyTo); } }
return; } else if (start == XContentParser.Token.START_OBJECT) { RangeFieldType fieldType = fieldType(); RangeType rangeType = fieldType.rangeType; String fieldName = null; name() + "], with unknown parameter [" + fieldName + "]"); } else if (fieldType().rangeType == RangeType.IP && start == XContentParser.Token.VALUE_STRING) { range = parseIpRangeFromCidr(parser); } else { throw new MapperParsingException("error parsing field [" + name() + "], expected an object but got " + parser.currentName()); boolean docValued = fieldType.hasDocValues(); boolean stored = fieldType.stored(); fields.addAll(fieldType().rangeType.createFields(context, name(), range, indexed, docValued, stored)); if (docValued == false && (indexed || stored)) { createFieldNamesField(context, fields);
@Override protected void doXContentBody(XContentBuilder builder, boolean includeDefaults, Params params) throws IOException { super.doXContentBody(builder, includeDefaults, params); if (fieldType().rangeType == RangeType.DATE && (includeDefaults || (fieldType().dateTimeFormatter() != null && fieldType().dateTimeFormatter().format().equals(DateFieldMapper.DEFAULT_DATE_TIME_FORMATTER.format()) == false))) { builder.field("format", fieldType().dateTimeFormatter().format()); } if (fieldType().rangeType == RangeType.DATE && (includeDefaults || (fieldType().dateTimeFormatter() != null && fieldType().dateTimeFormatter().locale() != Locale.ROOT))) { builder.field("locale", fieldType().dateTimeFormatter().locale()); } if (includeDefaults || coerce.explicit()) { builder.field("coerce", coerce.value()); } if (includeInAll != null) { builder.field("include_in_all", includeInAll); } else if (includeDefaults) { builder.field("include_in_all", false); } }
@Override public RangeFieldMapper build(BuilderContext context) { setupFieldType(context); return new RangeFieldMapper(name, fieldType, defaultFieldType, coerce(context), includeInAll, context.indexSettings(), multiFieldsBuilder.build(this, context), copyTo); } }
@Override public PercolatorFieldMapper build(BuilderContext context) { context.path().add(name()); FieldType fieldType = (FieldType) this.fieldType; KeywordFieldMapper extractedTermsField = createExtractQueryFieldBuilder(EXTRACTED_TERMS_FIELD_NAME, context); fieldType.queryTermsField = extractedTermsField.fieldType(); KeywordFieldMapper extractionResultField = createExtractQueryFieldBuilder(EXTRACTION_RESULT_FIELD_NAME, context); fieldType.extractionResultField = extractionResultField.fieldType(); BinaryFieldMapper queryBuilderField = createQueryBuilderFieldBuilder(context); fieldType.queryBuilderField = queryBuilderField.fieldType(); // Range field is of type ip, because that matches closest with BinaryRange field. Otherwise we would // have to introduce a new field type... RangeFieldMapper rangeFieldMapper = createExtractedRangeFieldBuilder(RANGE_FIELD_NAME, RangeType.IP, context); fieldType.rangeField = rangeFieldMapper.fieldType(); NumberFieldMapper minimumShouldMatchFieldMapper = createMinimumShouldMatchField(context); fieldType.minimumShouldMatchField = minimumShouldMatchFieldMapper.fieldType(); fieldType.mapUnmappedFieldsAsText = getMapUnmappedFieldAsText(context.indexSettings()); context.path().remove(); setupFieldType(context); return new PercolatorFieldMapper(name(), fieldType, defaultFieldType, context.indexSettings(), multiFieldsBuilder.build(this, context), copyTo, queryShardContext, extractedTermsField, extractionResultField, queryBuilderField, rangeFieldMapper, minimumShouldMatchFieldMapper); }
@Override public RangeFieldMapper build(BuilderContext context) { setupFieldType(context); return new RangeFieldMapper(name, fieldType, defaultFieldType, coerce(context), includeInAll, context.indexSettings(), multiFieldsBuilder.build(this, context), copyTo); } }