1

私は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 が long を整数として保存するのはなぜですか?

4

1 に答える 1

0

Elasticsearch 0.90.5 を使用して同様の動作に遭遇しました - データの値がマッピングをオーバーライドしているようです。

同じ問題がここで議論されています。私の理解が正しければ、これは、Elasticseach が Jackson を使用して JSON データをマップに変換し、値に基づいて行われるために発生しています。返されたオブジェクトのクラスを判別するために、instanceof を使用することにしました。

于 2013-11-28T23:50:47.023 に答える