elasticsearch 如何强制Elastic保留浮点的更多小数,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana" /> elasticsearch 如何强制Elastic保留浮点的更多小数,elasticsearch,logstash,kibana,elasticsearch,Logstash,Kibana" />

elasticsearch 如何强制Elastic保留浮点的更多小数

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

我有一些坐标,我从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"
}
我怎么能保留所有的小数?使用地理定位,一个小数点可能返回错误的城市

另一个问题与此有关

我将数据添加到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}}