elasticsearch 如何强制Elastic保留浮点的更多小数
我有一些坐标,我从Logstash传递给Elasticsearch,但Elastic只保留3位小数,所以坐标方面,我完全失去了位置 当我从Logstash发送数据时,我可以看到它得到了正确的值:elasticsearch 如何强制Elastic保留浮点的更多小数,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana,我有一些坐标,我从Logstash传递给Elasticsearch,但Elastic只保留3位小数,所以坐标方面,我完全失去了位置 当我从Logstash发送数据时,我可以看到它得到了正确的值: { "nasistencias" => 1, "tiempo_demora" => "15", "path" => "/home/elk/data/visits.csv", "m
{
"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"
}
我怎么能保留所有的小数?使用地理定位,一个小数点可能返回错误的城市
另一个问题与此有关
我将数据添加到csv文档中,如下所示:
mutate {
convert => { "longitud_corregida" => "float" }
convert => { "latitude_corregida" => "float" }
}
mutate {
rename => {
"longitud_corregida" => "[location][lon]"
"latitude_corregida" => "[location][lat]"
}
}
# 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
但在原始文件中,坐标不是点而是comas。像这样:
# 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。就像这里:
在这里,纬度是41565505,但彗发使它理解为41为纬度,565505为经度。我一点一点地改变了昏迷状态,不确定float是理解昏迷和点,还是只是昏迷。我的问题是,我用圆点改变昏迷是不是做错了?是否有更好的方法更正此问题?为lat/lon字段创建映射。这将使ES中的存储更加精确和内部优化,并使您更加复杂
请记住,您需要重新编制数据索引,因为如果存在要更改字段的文档,则之后不可能进行映射更改
零停机方法:
使用优化映射创建新索引从当前索引派生索引,并手动进行更改
至少为一些文档重新编制数据索引以进行验证
再次清空新索引
将LogSTASE目的地更改为新索引,考虑使用别名
将旧数据重新索引到新索引中
location.lat和location.lon的映射数据类型是什么?之前没有定义。重命名后它是浮动的。我首先创建了一个位置变量,并将其设置为geo point类型,但它抛出了一个错误。我明天再试一次。不,直接创建位置映射为geo point:PUT my_new_index{mappings:{properties:{location:{type:geo_point}}