1

我有代码

 if(row.get("LATITUDE") != null && row.get("LONGITUDE") != null) {
            result.put("geoPoint", ImportUtils.getGeoPoint(row));}

 public static Map<String, Object> getGeoPoint(Map<String, Object> s) {
        Map<String, Object> r = new HashMap<>();
        BigDecimal lat = (BigDecimal) s.get("LATITUDE");
        BigDecimal lon = (BigDecimal) s.get("LONGITUDE");

        r.put("lat", lat.doubleValue());//широта -90/90
        r.put("lon", lon.doubleValue());//долгота -180/180
        return r;
    }

问题是如果我这样做,一些对象没有geopoint字段,但是如果我把null或者把经纬度都设置为null,那么就会出现映射错误。

如果 geopoint 为空,我希望它是这样的

"geopoint": {}, 
//or as a last resort
"geopoint" : null

映射

   },
        "geoPoint": {
          "type": "geo_point"

          }

我尝试了 null_value: null,但由于某种原因它不起作用我怎样才能达到我需要的结果?

4

1 回答 1

2

更新您的映射 w/ ignore_malformed

...
{
 "type" : "geo_point",
 "ignore_malformed" : true
}
...
于 2020-03-31T09:33:05.733 回答