愚者求师之过,智者从师之长。

es中float类型写入的数据(整数位超8位且带小数位),查找出来的_source中该字段的值自动用科学记数法表示。有无办法不用科学记数法?

Elasticsearch | 作者 shwtz | 发布于2021年09月22日 | 阅读数:3430

对于float类型,写入列数据:
 
375000000.0
37500000.000124
 
朝招出来的_source中会变成以下形式:
3.75E8
3.7500000000124E7
 
有无设置可以使得查找来处的_source里面的数值保持写入时的样子,不用科学记数法?
 
 
medcl给了替代方案,写入float时,数值带上引号,这样查找出来的_source还是原文:
"_source" : {
          "f1" : "109001122.123456789",
          "k1" : "hahaha"
        }
且可以按照实际数值进行查找。
已邀请:

stone_xy

赞同来自: shwtz

 
_search?format=#.#
{"took":2,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":{"value":2,"relation":"eq"},"max_score":1.0,"hits":[{"_index":"f1-test","_type":"_doc","_id":"aNcpDHwBcjflI1GqlHRJ","_score":1.0,"_source":{
"f1": 375000000.0
}
},{"_index":"f1-test","_type":"_doc","_id":"adcwDHwBcjflI1Gqx3SA","_score":1.0,"_source":{
"f1": 37500000.000124
}
}]}}
 
doc values field可以  指定format 
 
 

shwtz - 学物理想做演员的IT男

赞同来自:

这个问题貌似最后不是问题了
 
因为如果用代码调用es的api,代码里头读取到的还是正常显示的数据。只是kibana显示_source的时候,可能是因为java代码的valueofstring类似的方法,自动转成了科学记数法
 
 
实际上是不影响使用的。
 
望周知

要回复问题请先登录注册