如何使用Logstash中的JDBC输入插件将纬度和经度值映射到转换数据库的geo_point,以便在Kibana中使用?

时间:2018-04-11 17:30:34

标签: elasticsearch geolocation logstash kibana logstash-jdbc

我正在使用logstash中的jdbc输入插件将Mariadb数据库记录到弹性搜索中。目标是使用Kibana制作一些地理报告。

数据被索引,但我不能使用索引的经度和纬度来使报告显示索引中没有“geo_point”类型。

我尝试配置jdbc插件以了解地理位置值,但似乎不是它的工作,但我应该在弹性搜索中更改索引的字段映射。

我可以在创建后更改索引的映射吗?如何?

1 个答案:

答案 0 :(得分:1)

您可以使用PUT映射API将新字段添加到具有geo_point类型的索引中: https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html

然后在logstash配置中,您可以添加其他过滤器以添加此字段。 假设您添加了名称为“ location”的新字段,并且在sql查询过滤器中选择了“ lan”和“ lot”,则应如下所示:

input {
  jdbc {
    ...
  }
}
filter {
    if [lat] and [lon] {
          mutate {
                    add_field => { "[location][lat]" => "%{[lat]}" }
                    add_field => { "[location][lon]" => "%{[lon]}" }
          }
          mutate {
                  convert => {"[location][lat]" => "float"}
                  convert => {"[location][lon]" => "float"}
          }
    }
}

output {
  elasticsearch {
    ...
  }
}

注意:适用于7.2版。