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

标签 elasticsearch geolocation logstash kibana logstash-jdbc

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

数据已建立索引,但是我不能使用经度和纬度建立索引,以使报告显示索引中没有“geo_point”类型。

我试图配置jdbc插件来理解地理值,但似乎不是它的工作,但是我应该在 Elasticsearch 中更改索引的字段映射。

创建后可以更改索引的映射吗?怎么样?

最佳答案

您可以使用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版。

关于elasticsearch - 如何使用Logstash中要在Kibana中使用的JDBC输入插件将纬度和经度值映射到转换数据库的geo_point中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49781220/

相关文章:

elasticsearch - 如何使用NEST在 Elasticsearch 中创建多态数据索引

javascript - 在 navigator.geolocation.getCurrentPosition 之外时,变量返回为未定义

elasticsearch - 从Couchdb迁移到Elasticsearch

elasticsearch - 为什么elasticsearch不允许更改索引数据?

logstash - 需要 #、输入、过滤器、logstash 中的输出之一

c# - 如何使用NEST Library在Elasticsearch中的嵌套对象中的同一字段上搜索多个值?

c# - Elasticsearch MoreLikeThis 查询从不返回结果

ruby-on-rails - ElasticSearch 处理带有嵌套对象的 Rails 路由参数

android webview 地理定位

javascript - Safari 8 和 7.1 中的地理定位 API 不断请求许可