gpt4 book ai didi

elasticsearch - 如何强制Elastic从 float 中保留更多小数

转载 作者:行者123 更新时间:2023-12-03 01:21:34 31 4
gpt4 key购买 nike

我有一些坐标是从Logstash传递给Elasticsearch的,但是Elastic只保留3个小数,因此就坐标而言,我完全失去了位置。

从Logstash发送数据时,可以看到它具有正确的值:

{
"nasistencias" => 1,
"tiempo_demora" => "15",
"path" => "/home/elk/data/visits.csv",
"menor" => "2",
"message" => "5,15,Parets del Vallès,76,0,8150,41.565505,2.234999575,LARINGITIS AGUDA,11/3/17 4:20,1,38,1,2,POINT(2.2349995750000695 41.565505000000044)",
"id_poblacion" => 76,
"@timestamp" => 2017-03-11T04:20:00.000Z,
"poblacion" => "Parets del Vallès",
"edad_valor" => 0,
"patologia" => "LARINGITIS AGUDA",
"host" => "elk",
"@version" => "1",
"Geopoint_corregido" => "POINT(2.2349995750000695 41.565505000000044)",
"id_tipo" => 1,
"estado" => "5",
"cp" => 8150,
"location" => {
"lon" => 2.234999575, <- HERE
"lat" => 41.565505 <- AND HERE
},
"id_personal" => 38,
"Fecha" => "11/3/17 4:20"
}

但是随后,我在Kibana上获得了如下代码:

enter image description here

我进行如下转换:
mutate {
convert => { "longitud_corregida" => "float" }
convert => { "latitude_corregida" => "float" }
}
mutate {
rename => {
"longitud_corregida" => "[location][lon]"
"latitude_corregida" => "[location][lat]"
}
}

如何保留所有小数?使用地理位置,小数点后可以返回错误的城市。

另一个问题(相关)

我将数据添加到csv文档中,如下所示:
# echo "5,15,Parets del Vallès,76,0,8150,"41.565505","2.234999575",LARINGITIS AGUDA,11/3/17 4:20,1,38,1,2,POINT(2.2349995750000695 41.565505000000044)" >> data/visits.csv

但是在原始文档中,坐标不是逗号,而是点。像这样:
# echo "5,15,Parets del Vallès,76,0,8150,"41,565505","2,234999575",LARINGITIS AGUDA,11/3/17 4:20,1,38,1,2,POINT(2.2349995750000695 41.565505000000044)" >> data/visits.csv

但是问题在于,它使用逗号作为字段分隔符,并且所有数据都被错误地发送到Elasticsearch。像这儿:

enter image description here

在这里,纬度为 41,565505,但昏迷使它理解 41为纬度,而 565505为经度。我通过点更改了昏迷,并且不确定是否float可以理解昏迷和点,或者仅仅是昏迷。我的问题是,按点更改昏迷是否做错了?有没有更好的方法来纠正此问题?

最佳答案

为纬度/经度字段创建一个GEO-Point映射。这将导致ES中更精确和内部优化的存储,并允许您使用更复杂的GEO-Queries

请记住,由于之后无法更改映射,因此您需要重新索引数据(如果已经存在需要更改字段的文档)

零停机方法:

  • 创建具有优化映射的新索引(从当前索引派生,并手动进行更改)
  • 重新索引数据(至少需要一些文档进行验证)
  • 再次清空新索引
  • 将logstash目标更改为新索引(考虑使用别名)
  • 将旧数据重新索引为新索引
  • 关于elasticsearch - 如何强制Elastic从 float 中保留更多小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60038257/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com