} else { try { numericValue = fieldType().type.parse(parser, coerce.value()); } catch (IllegalArgumentException e) { if (ignoreMalformed.value()) { numericValue = fieldType().type.parse(value, coerce.value()); boolean docValued = fieldType().hasDocValues(); boolean stored = fieldType().stored(); fields.addAll(fieldType().type.createFields(fieldType().name(), numericValue, indexed, docValued, stored)); if (docValued == false && (stored || indexed)) { createFieldNamesField(context, fields);
@Override public Query rangeQuery(Object lowerTerm, Object upperTerm, boolean includeLower, boolean includeUpper, QueryShardContext context) { failIfNotIndexed(); Long lo = null; if (lowerTerm != null) { double dValue = NumberFieldMapper.NumberType.DOUBLE.parse(lowerTerm, false).doubleValue(); if (includeLower == false) { dValue = Math.nextUp(dValue); } lo = Math.round(Math.ceil(dValue * scalingFactor)); } Long hi = null; if (upperTerm != null) { double dValue = NumberFieldMapper.NumberType.DOUBLE.parse(upperTerm, false).doubleValue(); if (includeUpper == false) { dValue = Math.nextDown(dValue); } hi = Math.round(Math.floor(dValue * scalingFactor)); } Query query = NumberFieldMapper.NumberType.LONG.rangeQuery(name(), lo, hi, true, true, hasDocValues()); if (boost() != 1f) { query = new BoostQuery(query, boost()); } return query; }
@Override public Query termsQuery(List<?> values, QueryShardContext context) { failIfNotIndexed(); List<Long> scaledValues = new ArrayList<>(values.size()); for (Object value : values) { double queryValue = parse(value); 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; }
} else { try { numericValue = fieldType().type.parse(parser, coerce.value()); } catch (IllegalArgumentException e) { if (ignoreMalformed.value()) { numericValue = fieldType().type.parse(value, coerce.value()); boolean docValued = fieldType().hasDocValues(); boolean stored = fieldType().stored(); fields.addAll(fieldType().type.createFields(fieldType().name(), numericValue, indexed, docValued, stored)); if (docValued == false && (stored || indexed)) { createFieldNamesField(context, fields);
} else { try { numericValue = fieldType().type.parse(parser, coerce.value()); } catch (IllegalArgumentException e) { if (ignoreMalformed.value()) { numericValue = fieldType().type.parse(value, coerce.value()); boolean docValued = fieldType().hasDocValues(); boolean stored = fieldType().stored(); fields.addAll(fieldType().type.createFields(fieldType().name(), numericValue, indexed, docValued, stored));
@Override public Query rangeQuery(Object lowerTerm, Object upperTerm, boolean includeLower, boolean includeUpper, QueryShardContext context) { failIfNotIndexed(); Long lo = null; if (lowerTerm != null) { double dValue = parse(lowerTerm) * scalingFactor; if (includeLower == false) { dValue = Math.nextUp(dValue); } lo = Math.round(Math.ceil(dValue)); } Long hi = null; if (upperTerm != null) { double dValue = parse(upperTerm) * scalingFactor; if (includeUpper == false) { dValue = Math.nextDown(dValue); } hi = Math.round(Math.floor(dValue)); } Query query = NumberFieldMapper.NumberType.LONG.rangeQuery(name(), lo, hi, true, true, hasDocValues()); if (boost() != 1f) { query = new BoostQuery(query, boost()); } return query; }
public void createField(ParseContext context, Object object) throws IOException { Integer value = (Integer)object; float boost = fieldType().boost(); if (value == null) { if (fieldType().nullValue() == null) { return; } value = (Integer) fieldType().nullValue(); } final int tokenCount; if (value == null) { tokenCount = (Integer) fieldType().nullValue(); } else { tokenCount = countPositions(analyzer, name(), value.toString(), enablePositionIncrements); } boolean indexed = fieldType().indexOptions() != IndexOptions.NONE; boolean docValued = fieldType().hasDocValues(); boolean stored = fieldType().stored(); for(Field field : NumberFieldMapper.NumberType.INTEGER.createFields(fieldType().name(), tokenCount, indexed, docValued, stored)) context.doc().add(field); }
@Override protected void parseCreateField(ParseContext context, List<IndexableField> fields) throws IOException { final String value; if (context.externalValueSet()) { value = context.externalValue().toString(); } else { value = context.parser().textOrNull(); } if (value == null && fieldType().nullValue() == null) { return; } final int tokenCount; if (value == null) { tokenCount = (Integer) fieldType().nullValue(); } else { tokenCount = countPositions(analyzer, name(), value, enablePositionIncrements); } boolean indexed = fieldType().indexOptions() != IndexOptions.NONE; boolean docValued = fieldType().hasDocValues(); boolean stored = fieldType().stored(); fields.addAll(NumberFieldMapper.NumberType.INTEGER.createFields(fieldType().name(), tokenCount, indexed, docValued, stored)); }
@Override protected void parseCreateField(ParseContext context, List<IndexableField> fields) throws IOException { final String value; if (context.externalValueSet()) { value = context.externalValue().toString(); } else { value = context.parser().textOrNull(); } if (value == null && fieldType().nullValue() == null) { return; } final int tokenCount; if (value == null) { tokenCount = (Integer) fieldType().nullValue(); } else { tokenCount = countPositions(analyzer, name(), value, enablePositionIncrements); } boolean indexed = fieldType().indexOptions() != IndexOptions.NONE; boolean docValued = fieldType().hasDocValues(); boolean stored = fieldType().stored(); fields.addAll(NumberFieldMapper.NumberType.INTEGER.createFields(fieldType().name(), tokenCount, indexed, docValued, stored)); }
@Override public void createField(ParseContext context, Object value) throws IOException { final boolean includeInAll = context.includeInAll(this.includeInAll, this); if (value == null) { value = fieldType().nullValue(); } if (value == null) { return; } Number numericValue = fieldType().type.parse(value, coerce.value()); if (includeInAll) { context.allEntries().addText(fieldType().name(), value.toString(), fieldType().boost()); } boolean indexed = fieldType().indexOptions() != IndexOptions.NONE; boolean docValued = fieldType().hasDocValues(); boolean stored = fieldType().stored(); for(Field field : fieldType().type.createFields(fieldType().name(), numericValue, indexed, docValued, stored)) context.doc().add(field); }
@Override protected void parseCreateField(ParseContext context, List<IndexableField> fields) throws IOException { final String value; if (context.externalValueSet()) { value = context.externalValue().toString(); } else { value = context.parser().textOrNull(); } final int tokenCount; if (value == null) { tokenCount = (Integer) fieldType().nullValue(); } else { tokenCount = countPositions(analyzer, name(), value, enablePositionIncrements); } boolean indexed = fieldType().indexOptions() != IndexOptions.NONE; boolean docValued = fieldType().hasDocValues(); boolean stored = fieldType().stored(); fields.addAll(NumberFieldMapper.NumberType.INTEGER.createFields(fieldType().name(), tokenCount, indexed, docValued, stored)); }
@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; }
@Override public Query termsQuery(List<?> values, QueryShardContext context) { failIfNotIndexed(); List<Long> scaledValues = new ArrayList<>(values.size()); for (Object value : values) { double queryValue = parse(value); 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 Number parsePoint(byte[] value) { return type.parsePoint(value); }
@Override public Query termsQuery(String field, List<Object> values) { return INTEGER.termsQuery(field, values); }
@Override public Query termQuery(String field, Object value) { return INTEGER.termQuery(field, value); }
@Override public Query termsQuery(String field, List<Object> values) { return INTEGER.termsQuery(field, values); }