elasticsearch解决字段冲突问题

思路: 第一步删除冲突的字段数据, 第二步重建索引(不是kibana里刷新索引)

第一步

POST logstash-log-2018*/_delete_by_query
{
    "query": {
        "exists" : { "field" : "字段名" }
    }
}

第二步

  curl -XPOST "http://127.0.0.1:9200/_reindex" -H 'Content-Type: application/json' -d'
    {
    "source": {
      "index": "logstash-log-2018.04.18",
      "size": 10000
      },
      "dest": {
      "index": "logstash2-log-2018.04.18"
    }
    }


如果冲突的字段不重要,可以直接删除这个字段

POST logstash-log-2018.04.18/_update_by_query?wait_for_completion=false&conflicts=proceed
{
    "query": {
    "bool": {
      "must": [
        {
          "exists": {
            "field": "字段名"
          }
        }
      ]
    }
  },
  "script" : {"inline":"ctx._source.remove('字段名')"}
  
}


猜你喜欢

转载自blog.csdn.net/langouster/article/details/89919406