if (multiFields.iterator().hasNext()) { multiFields.parse(this, context.createExternalValueContext(point.geohash()));
if (multiFields.iterator().hasNext()) { multiFields.parse(this, context.createExternalValueContext(point.geohash()));
if (multiFields.iterator().hasNext()) { multiFields.parse(this, context.createExternalValueContext(point.geohash()));
@Override public void parse(ParseContext originalContext, GeoPoint point, String geoHash) throws IOException { // Geopoint fields, by default, will not be included in _all final ParseContext context = originalContext.setIncludeInAllDefault(false); if (ignoreMalformed.value() == false) { if (point.lat() > 90.0 || point.lat() < -90.0) { throw new IllegalArgumentException("illegal latitude value [" + point.lat() + "] for " + name()); } if (point.lon() > 180.0 || point.lon() < -180) { throw new IllegalArgumentException("illegal longitude value [" + point.lon() + "] for " + name()); } } else { GeoUtils.normalizePoint(point); } if (fieldType().indexOptions() != IndexOptions.NONE) { context.doc().add(new LatLonPoint(fieldType().name(), point.lat(), point.lon())); } if (fieldType().stored()) { context.doc().add(new StoredField(fieldType().name(), point.toString())); } if (fieldType.hasDocValues()) { context.doc().add(new LatLonDocValuesField(fieldType().name(), point.lat(), point.lon())); } // if the mapping contains multifields then use the geohash string if (multiFields.iterator().hasNext()) { multiFields.parse(this, context.createExternalValueContext(point.geohash())); } } }
@Override public Iterator<Mapper> iterator() { return multiFields.iterator(); }
@Override public Iterator<Mapper> iterator() { return multiFields.iterator(); }
@Override public Iterator<Mapper> iterator() { return multiFields.iterator(); }
@Override public Iterator<Mapper> iterator() { return multiFields.iterator(); }
@Override public Iterator<Mapper> iterator() { return multiFields.iterator(); }