【问题标题】:Elasticsseach can’t merge a non object mapping with an object mappingElasticsseach 无法将非对象映射与对象映射合并
【发布时间】:2021-06-23 22:13:23
【问题描述】:

可以通过某种方式在 Elasticsearch 映射中定义 geo-point field type 并导入数据,但不能同时进行。在 JSON 数据中,位置字段如下所示

"location": { 
  "lat": 41.12,
  "lng": -71.34
}

因为我们需要“lon”而不是“lng”,所以我们在 Logstash 配置中使用这个“mutate”过滤器来重命名字段:

mutate {
    rename => {
        "[location][lng]" => "[location][lon]"
    }
}

如果我们不使用映射,那么 Elasticsearch 会自动为位置字段使用以下映射并导入数据

"location": {
  "properties": {
    "lat": {
      "type": "float"
    },
    "lon": {
      "type": "float"
    }
  }
}

到目前为止一切顺利。但是,如果我现在在创建索引时在 Elasticsearch 映射中使用“geo_point”,那么我将无法再导入任何数据,因为我收到错误消息“无法将非对象映射 [位置] 与对象映射合并” 在 Logstash 中 can happen 如果我们尝试更改映射。但是这里的映射已经用于创建索引:

"mappings":{
    "properties":{
        "location": {
            "type": "geo_point",
            "ignore_malformed": "true",
        },
    }
}

显然,Logstash 和 Elasticsearch 将映射中类型为 geo_point 的字段 location 视为不是对象,而该位置的 JSON 数据是对象。

虽然无法使用此映射在 Logstash 中导入数据,但我可以像这样将文档保存在 Kibana DEV Tools 中

PUT geo-test/_doc/1
{
  "title": "Geo-point test",
  "location": { 
    "lat": 41.12,
    "lon": -71.34
  }
}

如何使用地理点映射将数据导入 Logstash? (我使用的是 Elasticsearch 7.9.1 版和 Logstash 7.12.0 版,包括 S3 输入插件和 Elasticsearch 输出插件)

【问题讨论】:

  • 你能分享你的geo-test索引使用GET geo-test的有效映射吗?
  • 不可能创建一个从一开始就具有正确映射的 Elasticsearch 索引?我使用的映射列在以 ""mappings" 开头的代码块中。
  • 我感兴趣的是当前在您的索引中的映射,而不是您认为在创建索引时使用的映射。经验表明,有时映射不是我们认为的那样。致电GET geo-test,请分享您的收获
  • 如果我打电话给/geo-test/_mapping,我会得到这个映射。
  • 请使用您获得的映射更新您的问题

标签: elasticsearch logstash


【解决方案1】:

您收到此错误的原因是您在elasticsearch 输出中指定了不同的document_type。只需删除下面强调的行,它就会按您期望的方式工作:

elasticsearch {
    hosts => [ "${ES_DOMAIN_NAME}:443" ]
    healthcheck_path => "/"
    ilm_enabled => false
    ssl => true
    index => "${ES_INDEX}"
    document_type => "json"         <--- remove this line
}

您安装的映射适用于默认文档类型,即 _doc 而不是 json

【讨论】:

    猜你喜欢
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-19
    • 2019-05-27
    • 1970-01-01
    • 2013-08-01
    • 1970-01-01
    相关资源
    最近更新 更多