我在elasticsearch中有这个
.startObject("mylongfield").field("type", "long").field("store", "true").field("index", "not_analyzed").endObject()
Map<String, Object> row
row.put("mylongfield", Long.valueOf("0").longValue());
OR
row.put("mylongfield", Long.valueOf(0L).longValue());
当我后来的地图
resultMap = searchHit.sourceAsMap()
resultMap.get("mylongfield") ... IT IS AN INTEGER ?!?
为什么ealsticsearch存储我的整数?
答案 0 :(得分:0)
我使用Elasticsearch 0.90.5遇到了类似的行为 - 数据的值似乎覆盖了映射。
讨论了同样的问题here。如果我理解正确,就会发生这种情况,因为Elasticseach使用Jackson将JSON数据转换为Map,这是基于值完成的。我已经使用instanceof来确定返回的Object的类。