elasticsearch,geolocation,logstash,Ruby,elasticsearch,Geolocation,Logstash" /> elasticsearch,geolocation,logstash,Ruby,elasticsearch,Geolocation,Logstash" />

Ruby 带有自定义地质点的Logstash过滤器

Ruby 带有自定义地质点的Logstash过滤器,ruby,elasticsearch,geolocation,logstash,Ruby,elasticsearch,Geolocation,Logstash,我正在尝试以下方法: 我有一个自定义的Logstash过滤器,在这个过滤器中我有纬度和经度值。现在,我想创建一个新的field Serv_位置,该位置使用lat和lon值,这样我就可以使用kibana中的这些地质点创建世界地图。我的问题是,当我创建新字段时,它将其解释为logstash中的数字/数字字段,而不是因此需要的地质点字段 当前,我的代码如下所示,用于添加字段: event['serv_location'] = [geo_lat.to_f, geo_lng.to_f] 创建地质点场还

我正在尝试以下方法:

我有一个自定义的Logstash过滤器,在这个过滤器中我有纬度和经度值。现在,我想创建一个新的field Serv_位置,该位置使用lat和lon值,这样我就可以使用kibana中的这些地质点创建世界地图。我的问题是,当我创建新字段时,它将其解释为logstash中的数字/数字字段,而不是因此需要的地质点字段

当前,我的代码如下所示,用于添加字段:

 event['serv_location'] = [geo_lat.to_f, geo_lng.to_f]
创建地质点场还需要做什么

编辑:

以下是我所做的映射:

curl -XPUT 'http://localhost:5601/logstash-2015.04.16/_mapping/location' -d '
  {
              "map_location" : 
              {
                   "properties" : {
                   "location" : {"type" : "geo_point", "store" : true }
                   }
               }
  }

谢谢。

请为此字段编写自定义映射,并定义类型:geo_point。希望这能解决您的问题

您有自定义映射吗?如果是,您的新服务位置字段的映射是什么样子的?我更新了我的帖子,请参见上文是的,您只需要将您的字段重命名为服务位置而不是位置,并将URL重命名为/\u mapping/map\u location。请重试。确定当我尝试执行此操作时,会出现以下错误:{error:RemoteTransportException[[server][inet[/]][index:admin/mapping/put]];nested:indexmissingeException[[logstash-2015.04.16]missing];status:404}这意味着您没有任何名为logstash-2015.04.16的索引,您应该使用现有的索引,还有一件事:映射已成功创建,但现在存在映射冲突,它没有在位置旁边显示世界地图符号,而是一个感叹号!