Elasticsearch插入单密钥(如果不存在),而不会影响其他键



在我的某些文档中,我有一个钥匙作为 school。说文件是:

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

现在,school并不存在所有文档中。我想在尚未带有默认字符串的所有文档中插入 school键。

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

我会清楚地使用查询API的更新。您可以搜索所有没有school字段的文档,并将其设置为您想要的任何默认值:

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

请注意,您需要启用动态脚本并重新启动ES服务器。

最新更新