java读取es的的double值类型问题?

es:7.3版本;
添加索引,设置的映射price字段是double类型。插入的数据值是1999,但是利用java客户端查询时候,发现读取到的是Integer类型,又测试了一下将1999改成1999.89,这样的话,java读取出来是double类型,感觉很奇怪,明明我已经强制设置了字段的映射类型,为什么读取出来的还是别的类型呢?如果这样的话,建表的时候映射还有什么用呢?最主要的是 ,Java读取之后需要强制转换,肯定会报错的。

一般大家都是怎么处理这样的问题的呢?是插入数据数据的时候一定带上小数么?

最后吐槽一句:ES的坑真是多啊、真没有Mysql好用。


回答:

mapping 是 es 做数据校验跟索引用的。

search 返回的 index 时候输入的原始文档,你给 es 是什么样子,就是什么样子。

至于之后怎么把这个文档(json)解析出来处理,就跟 es 无关了,也不会收 mapping 影响。所以这里应该是 java 解析 json 时遇到了一个整数,就直接用 Integer 了。

以上是 java读取es的的double值类型问题? 的全部内容, 来源链接: utcz.com/p/944675.html

回到顶部