@Override public Mapper.Builder<?,?> parse(String name, Map<String, Object> node, ParserContext parserContext) throws MapperParsingException { Builder builder = new Builder(name, type); TypeParsers.parseField(builder, name, node, parserContext); for (Iterator<Map.Entry<String, Object>> iterator = node.entrySet().iterator(); iterator.hasNext();) { Map.Entry<String, Object> entry = iterator.next(); String propName = entry.getKey(); Object propNode = entry.getValue(); if (propName.equals("null_value")) { if (propNode == null) { throw new MapperParsingException("Property [null_value] cannot be null."); } builder.nullValue(type.parse(propNode, false)); iterator.remove(); } else if (propName.equals("ignore_malformed")) { builder.ignoreMalformed(TypeParsers.nodeBooleanValue(name,"ignore_malformed", propNode, parserContext)); iterator.remove(); } else if (propName.equals("coerce")) { builder.coerce(TypeParsers.nodeBooleanValue(name, "coerce", propNode, parserContext)); iterator.remove(); } } return builder; } }
@Override public Query termsQuery(List values, QueryShardContext context) { failIfNotIndexed(); List<Long> scaledValues = new ArrayList<>(values.size()); for (Object value : values) { double queryValue = NumberFieldMapper.NumberType.DOUBLE.parse(value, false).doubleValue(); long scaledValue = Math.round(queryValue * scalingFactor); scaledValues.add(scaledValue); } Query query = NumberFieldMapper.NumberType.LONG.termsQuery(name(), Collections.unmodifiableList(scaledValues)); if (boost() != 1f) { query = new BoostQuery(query, boost()); } return query; }
public Object parse(Object value, boolean coerce) { return numberType.parse(value, coerce); } public Query rangeQuery(String field, boolean hasDocValues, Object from, Object to, boolean includeFrom, boolean includeTo,
public Object parse(Object value, boolean coerce) { return numberType.parse(value, coerce); } public Query rangeQuery(String field, Object from, Object to, boolean includeFrom, boolean includeTo,
public Object parse(Object value, boolean coerce) { return numberType.parse(value, coerce); } public Query rangeQuery(String field, boolean hasDocValues, Object from, Object to, boolean includeFrom, boolean includeTo,
public Object parse(Object value, boolean coerce) { return numberType.parse(value, coerce); } public Query rangeQuery(String field, boolean hasDocValues, Object from, Object to, boolean includeFrom, boolean includeTo,
@Override Float parse(Object value, boolean coerce) { return (Float) FLOAT.parse(value, false); }
/** parses to value. rounds according to included flag */ public Object parseTo(RangeFieldType fieldType, XContentParser parser, boolean coerce, boolean included) throws IOException { Number value = numberType.parse(parser, coerce); return included ? value : (Number)nextDown(value); }
/** parses from value. rounds according to included flag */ public Object parseFrom(RangeFieldType fieldType, XContentParser parser, boolean coerce, boolean included) throws IOException { Number value = numberType.parse(parser, coerce); return included ? value : (Number)nextUp(value); } /** parses to value. rounds according to included flag */
/** parses to value. rounds according to included flag */ public Object parseTo(RangeFieldType fieldType, XContentParser parser, boolean coerce, boolean included) throws IOException { Number value = numberType.parse(parser, coerce); return included ? value : (Number)nextDown(value); }
/** parses from value. rounds according to included flag */ public Object parseFrom(RangeFieldType fieldType, XContentParser parser, boolean coerce, boolean included) throws IOException { Number value = numberType.parse(parser, coerce); return included ? value : (Number)nextUp(value); } /** parses to value. rounds according to included flag */
/** parses from value. rounds according to included flag */ public Object parseFrom(RangeFieldType fieldType, XContentParser parser, boolean coerce, boolean included) throws IOException { Number value = numberType.parse(parser, coerce); return included ? value : (Number)nextUp(value); } /** parses to value. rounds according to included flag */
@Override public Query termQuery(Object value, QueryShardContext context) { failIfNotIndexed(); double queryValue = NumberFieldMapper.NumberType.DOUBLE.parse(value, false).doubleValue(); long scaledValue = Math.round(queryValue * scalingFactor); Query query = NumberFieldMapper.NumberType.LONG.termQuery(name(), scaledValue); if (boost() != 1f) { query = new BoostQuery(query, boost()); } return query; }
/** parses to value. rounds according to included flag */ public Object parseTo(RangeFieldType fieldType, XContentParser parser, boolean coerce, boolean included) throws IOException { Number value = numberType.parse(parser, coerce); return included ? value : (Number)nextDown(value); }
/** parses to value. rounds according to included flag */ public Object parseTo(RangeFieldType fieldType, XContentParser parser, boolean coerce, boolean included) throws IOException { Number value = numberType.parse(parser, coerce); return included ? value : (Number)nextDown(value); }
/** parses from value. rounds according to included flag */ public Object parseFrom(RangeFieldType fieldType, XContentParser parser, boolean coerce, boolean included) throws IOException { Number value = numberType.parse(parser, coerce); return included ? value : (Number)nextUp(value); } /** parses to value. rounds according to included flag */
public Object parse(Object value, boolean coerce) { return numberType.parse(value, coerce); } public Query rangeQuery(String field, boolean hasDocValues, Object from, Object to, boolean includeFrom, boolean includeTo,
/** parses to value. rounds according to included flag */ public Object parseTo(RangeFieldType fieldType, XContentParser parser, boolean coerce, boolean included) throws IOException { Number value = numberType.parse(parser, coerce); return included ? value : (Number)nextDown(value); }
/** parses from value. rounds according to included flag */ public Object parseFrom(RangeFieldType fieldType, XContentParser parser, boolean coerce, boolean included) throws IOException { Number value = numberType.parse(parser, coerce); return included ? value : (Number)nextUp(value); } /** parses to value. rounds according to included flag */