2017-02-02 26 views
0

我有一個csv文件保存一些記錄的經度和緯度(否則是「」)。現在我想使用logstash 5.1.2將數據轉換爲elasticsearch 5.1.2。我寫了以下conf文件,但位置字段仍然映射到文本。如何將logstash中的位置(lon,lat)映射到kibana中可視化?

input { 
     file { 
      path => "/usr/local/Cellar/logstash/5.1.2/bin/data.csv" 
      start_position => "beginning" 
      sincedb_path => "/dev/null" 
     } 
} 

filter { 
    csv { 
     columns => ['logtime', 'text', 'user', 'country', 'location'] 
     separator => "," 
    } 
    date { 
     match => ["logtime", "yyyy-MM-dd HH:mm:ss"] 
     timezone => "Europe/London" 
     target => "Date" 
    } 
    if [latitude] and [longitude] { 
    mutate { convert => {"latitude" => "float"} } 
    mutate { convert => {"longitude" => "float"} } 
    mutate { rename => {"latitude" => "[location][lat]"} } 
    mutate { rename => {"longitude" => "[location][lon]"} } 
    } 
} 

output { 
    elasticsearch { 
    hosts => ["localhost:9200"] 
    index => "twitter"} 
} 

那我該怎麼做才能讓映射爲地理點的位置字段,並能夠可視化地圖上的點Kibana 5.1.2?謝謝

回答

3

您需要創建一個將location映射到geo_point的映射。最簡單的方法是使用索引模板,以便在開始使用基於時間的索引時,它會在創建新索引時自動創建映射。

PUT /_template/twitter 
{ 
    "order": 0, 
    "template": "twitter*", 
    "mappings": { 
    "_default_": { 
     "properties": { 
     "location": { 
      "type": "geo_point" 
     } 
     } 
    } 
    } 
} 

然後刪除您的/twitter索引並重新索引您的數據。

上面的模板說是獲取與此有任何_typelocation字段名稱twitter*意志創造任何索引變成了geo_point

相關問題