elasticsearch解决字段冲突问题

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

第一步

POST logstash-log-2018*/_delete_by_query
{
    "query": {
        "exists" : { "field" : "response" }
    }
}

第二步

    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 /_reindex
        {
    "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”: “toString”
}
}
]
}
},
“script” : {“inline”:”ctx._source.remove(‘toString’)”}

}


你可能感兴趣的:(elasticsearch解决字段冲突问题)