似乎我在这里已经超出了我的联盟,并希望来自 Elasticsearch 社区的人可以收听并指出我的错误。
我想尝试使用 Kibana + Elastic 搜索来处理我们拥有的一些符合 COUNTER3 的统计信息,为此需要导入 CSV 文件。
我选择CSV River 插件来导入 csv 文件。
River-csv 配置了对 http://localhost:9200/_river/test_csv_river/_meta 的以下 PUT 请求
{
"type": "csv",
"csv_file": {
"folder": "C:\\localdata\\UsageStats\\COUNTER3",
"first_line_is_header": "true"
}
}
这工作正常,但事实证明数字字段是作为字符串导入的,而不是数字。通过检查索引类型映射确认:http://localhost:9200/test_csv_river/csv_type/_mapping
{
test_csv_river: {
mappings: {
csv_type: {
properties: {
ft_total: {
type: "string"
},
.....
}
}
}
}
}
这个相关的 SO 问题让我相信我可以在创建索引后更改类型字段属性:如何在弹性搜索中更新字段类型?
但是当我发出以下 PUT 请求时,我收到一个错误
{"error":"MergeMappingException[Merge failed with failures {[mapper [ft_total] of different type, current_type [string],merged_type [integer]]}]","status “:400}
http://localhost:9200/test_csv_river/csv_type/_mapping
{
"csv_type" : {
"properties" : {
"ft_total" : {"type" : "integer", "store" : "yes"}
}
}
}
有没有办法从字符串>整数更新该类型?
或者,有什么方法可以确保在使用 CSV 河流插件时使用预定义为“类型”:“整数”的特定字段创建索引?