在 7.10 中,新用户,经验丰富的用户和地理空间分析师可以为之高兴! 它增强了文件摄取过程,以便自动为你映射文件中的经/纬度字段并分配正确的数据类型。 这是什么意思? 使用机器学习应用程序中 CSV 数据的文件上传界面,当数据集包含名为 latitude 和 longitude 的字段时,提取过程会自动将这些字段合并为 geo_point 位置字段。 如果你的字段具有无法识别的名称,则无需担心-你可以使用简单的界面自己添加新字段。 无需手动输入 JSON。
下面,我将以极易简单的例子来进行展示。我将使用 Elastic Stack 7.10 来进行展示。
首先,我们参照之前的文章 “Logstash:导入 zipcode CSV 文件和 Geo Search 体验” 下载 zipcode 的 CSV 文件:
git clone https://github.com/liu-xiao-guo/elasticzipcodes
这个 CSV 文件的格式如下:
从上面的表格中,我们可以看出来有两个字段:Longtitude 以及 Latitude 字段。我们可以使用如下的功能来把数据进行导入:
在上面我们可以清楚地看到:Latitude 以及 Logitude 被自动组合成为一个新的 geo_point 的数据类型。这个在之前的版本中是没有这个功能的。我们点击 Advanced:
在有些情况下,也许你的字段名称并不是标准的 Logititude 以及 Latitude。你可能是 Lat 及 Lon,那么机器学习可能并不能辨识你的这些字段。在这种情况下,我们可以点击 Add combined field 来创建一个字段:
如上所示,我们可以选择需要的字段,比如 Lat 及 Log。当然针对我们的情况,我们还是做如上所示的选择,因为这些都是仅有的选项。点击 Add 按钮:
如上图所示,经过我们的这番操作,我们可以看到有两个位置信息字段 location 已经 my_location。当然这个是为了说明问题,在实际的使用中,我们只需要一个位置信息字段即可。我们点击 Import 按钮。这样就完成了数据的导入。
我们可以在 Kibana 的 console 中通过如下的方式来查看 zipcodes 的 mapping:
GET zipcodes/_mapping
上面的命令显示:
{
"zipcodes" : {
"mappings" : {
"_meta" : {
"created_by" : "ml-file-data-visualizer"
},
"properties" : {
"AreaCode" : {
"type" : "long"
},
"Code" : {
"type" : "long"
},
"Disabled" : {
"type" : "boolean"
},
"Id" : {
"type" : "long"
},
"Latitude" : {
"type" : "double"
},
"Longitude" : {
"type" : "double"
},
"Name" : {
"type" : "keyword"
},
"ShortName" : {
"type" : "keyword"
},
"Sort" : {
"type" : "long"
},
"location" : {
"type" : "geo_point"
},
"my_location" : {
"type" : "geo_point"
}
}
}
}
}
我们可以看到之前定义的两个位置信息字段 location 以及 my_location。它们都是 geo_point 的数据类型。