Elasticsearch如果不存在,则插入单个键,而不影响其他键

时间:2017-09-11 07:07:48

标签: elasticsearch elasticsearch-2.0

在我的一些文档中,我有一个密钥存在school。说文件是:

{
    "id" : "123",
    "name" : "Robert",
    "school" : "Public"
}

现在,school并非出现在所有文件中。我想在所有未使用默认字符串的文档中插入school键。

我使用的是Elasticsearch版本号2.4.5。我该怎么做?我正在查看批量更新吗?

1 个答案:

答案 0 :(得分:0)

我会清楚地使用update by query API。您可以搜索所有不具有school字段的文档,并将其设置为您希望的默认值:

POST your-index/your-type/_update_by_query
{
  "query": {
    "bool": {
      "must_not": {
        "exists": {
          "field": "school"
        }
      }
    }
  },
  "script": {
    "inline": "ctx._source.school = 'dummy'"
  }
}

请注意,您需要enable dynamic scripting并重新启动ES服务器。