|
@@ -394,8 +394,8 @@ public class GeoPointFieldMapper extends AbstractFieldMapper<GeoPoint> implement
|
|
|
|
|
|
private final StringFieldMapper geohashMapper;
|
|
|
|
|
|
- private final boolean validateLon;
|
|
|
- private final boolean validateLat;
|
|
|
+ private boolean validateLon;
|
|
|
+ private boolean validateLat;
|
|
|
|
|
|
private final boolean normalizeLon;
|
|
|
private final boolean normalizeLat;
|
|
@@ -613,7 +613,38 @@ public class GeoPointFieldMapper extends AbstractFieldMapper<GeoPoint> implement
|
|
|
@Override
|
|
|
public void merge(Mapper mergeWith, MergeContext mergeContext) throws MergeMappingException {
|
|
|
super.merge(mergeWith, mergeContext);
|
|
|
- // TODO: geo-specific properties
|
|
|
+ if (!this.getClass().equals(mergeWith.getClass())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ GeoPointFieldMapper fieldMergeWith = (GeoPointFieldMapper) mergeWith;
|
|
|
+
|
|
|
+ if (this.enableLatLon != fieldMergeWith.enableLatLon) {
|
|
|
+ mergeContext.addConflict("mapper [" + names.fullName() + "] has different lat_lon");
|
|
|
+ }
|
|
|
+ if (this.enableGeoHash != fieldMergeWith.enableGeoHash) {
|
|
|
+ mergeContext.addConflict("mapper [" + names.fullName() + "] has different geohash");
|
|
|
+ }
|
|
|
+ if (this.geoHashPrecision != fieldMergeWith.geoHashPrecision) {
|
|
|
+ mergeContext.addConflict("mapper [" + names.fullName() + "] has different geohash_precision");
|
|
|
+ }
|
|
|
+ if (this.enableGeohashPrefix != fieldMergeWith.enableGeohashPrefix) {
|
|
|
+ mergeContext.addConflict("mapper [" + names.fullName() + "] has different geohash_prefix");
|
|
|
+ }
|
|
|
+ if (this.normalizeLat != fieldMergeWith.normalizeLat) {
|
|
|
+ mergeContext.addConflict("mapper [" + names.fullName() + "] has different normalize_lat");
|
|
|
+ }
|
|
|
+ if (this.normalizeLon != fieldMergeWith.normalizeLon) {
|
|
|
+ mergeContext.addConflict("mapper [" + names.fullName() + "] has different normalize_lon");
|
|
|
+ }
|
|
|
+ if (this.precisionStep != fieldMergeWith.precisionStep) {
|
|
|
+ mergeContext.addConflict("mapper [" + names.fullName() + "] has different precision_step");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (!mergeContext.mergeFlags().simulate()) {
|
|
|
+ this.validateLat = fieldMergeWith.validateLat;
|
|
|
+ this.validateLon = fieldMergeWith.validateLon;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|