如果小数点后的数字是零,那不就是 return 作为一个双精度值吗?
If the numbers after the decimal is zero, it doesn’t return as a double value?
我在 elasticsearch 5.0
中创建了一个索引,其中包含来自我的 MySQL
数据库的数据。在我的 table 中有一个字段是 string
,我需要它作为 ES 中的 double
。
因此,当我使用 PUT
:
为适当的字段创建索引时,我添加了映射
{
"mappings": {
"my_type": {
"properties": {
"chargeamount": {
"type": "double"
}
}
}
}
}
在我这样做之后,一个包含小数点后数字的值(即:23.23)returns 该值正确地作为双精度值,但作为小数点后有零的数字(即:23.00)returns 它作为一个字符串本身(即:2300)。
编辑:
这些是我执行的步骤:
我最初通过 PUT
请求创建了索引
(http://hostmachine:9402/indexname
) 以上述映射为
body。
然后我将数据(从我的 MySQL table)推送到索引使用
logstash
。如果需要,我可以提供 logstash conf。
将数据上传到索引后,我尝试这样查询以检查结果是否显示双精度值。 POST
请求(http://hostmachine:9402/indexname/_search?
和body如下:
{
"size" : 0,
"query":{
"query_string":{
"query":"myquery"
}
},
"aggs":{
"total":{
"terms":{
"field":"userid"
},
"aggs":{
"total":{
"sum":{
"script":{
"lang": "painless",
"inline" : "doc['chargeamount'].value"
}
}
}
}
}
}
}
结果如下图所示,应该是 267472.00:
我哪里错了?任何帮助都将不胜感激。
您需要确保索引创建查询中的映射类型与您在 logstash 配置中的 document_type
完全相同,即 message_logs
:
PUT response_summary6
{
"mappings": {
"message_logs": { <--- change this
"properties": {
"userid": {
"type": "text",
"fielddata": true
},
"responsecode": {
"type": "integer"
},
"chargeamount": {
"type": "double"
}
}
}
}
}
我在 elasticsearch 5.0
中创建了一个索引,其中包含来自我的 MySQL
数据库的数据。在我的 table 中有一个字段是 string
,我需要它作为 ES 中的 double
。
因此,当我使用 PUT
:
{
"mappings": {
"my_type": {
"properties": {
"chargeamount": {
"type": "double"
}
}
}
}
}
在我这样做之后,一个包含小数点后数字的值(即:23.23)returns 该值正确地作为双精度值,但作为小数点后有零的数字(即:23.00)returns 它作为一个字符串本身(即:2300)。
编辑: 这些是我执行的步骤:
我最初通过
PUT
请求创建了索引 (http://hostmachine:9402/indexname
) 以上述映射为 body。然后我将数据(从我的 MySQL table)推送到索引使用
logstash
。如果需要,我可以提供 logstash conf。将数据上传到索引后,我尝试这样查询以检查结果是否显示双精度值。
POST
请求(http://hostmachine:9402/indexname/_search?
和body如下:{ "size" : 0, "query":{ "query_string":{ "query":"myquery" } }, "aggs":{ "total":{ "terms":{ "field":"userid" }, "aggs":{ "total":{ "sum":{ "script":{ "lang": "painless", "inline" : "doc['chargeamount'].value" } } } } } } }
结果如下图所示,应该是 267472.00:
我哪里错了?任何帮助都将不胜感激。
您需要确保索引创建查询中的映射类型与您在 logstash 配置中的 document_type
完全相同,即 message_logs
:
PUT response_summary6
{
"mappings": {
"message_logs": { <--- change this
"properties": {
"userid": {
"type": "text",
"fielddata": true
},
"responsecode": {
"type": "integer"
},
"chargeamount": {
"type": "double"
}
}
}
}
}