我是弹性搜索的新手,如果我将数据添加到来自不同来源的现有索引,我不确定如何定义geo_point类型。
如果我创建一个新索引,一切正常:
我的logstash geo.conf文件:
input {
file {
path => "/geoList.csv"
sincedb_path => "/dev/null"
start_position => "beginning"
}
}
filter {
csv {
separator => ";"
columns => [ "Country","LATITUDE","LONGITUDE"]
}
mutate {
convert => { "LATITUDE" => "float" }
convert => { "LONGITUDE" => "float" }
}
mutate {
rename => {
"LONGITUDE" => "[location][lon]"
"LATITUDE" => "[location][lat]"
}
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
index => 'geomap'
}
}
之后我为我的新索引创建了一个模板
PUT _template/geo_template
{
"template": "geomap",
"mappings": {
"logs" : {
"properties" : {
"location" : {
"type" : "geo_point"
}
}
}
}
}
我可以创建一张地图,我有
location geo_point
但是如果我尝试使用geo.conf添加到我现有的索引
elasticsearch {
index => 'existingindex'
}
在现有索引中,我现在有2个字段:
location.lat number
location.lon number
但我需要一个字段来创建地图可视化:
location geo_point
我无法得到这个领域。我认为问题是我需要添加地图或模板,但我不知道如何从现有索引中编辑现有的