2

似乎我在这里已经超出了我的联盟,并希望来自 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 河流插件时使用预定义为“类型”:“整数”的特定字段创建索引?

4

0 回答 0