Elasticsearch 如果不存在则插入单个键,不影响其他键
Elasticsearch Insert single key if not exists, without affecting other keys
在我的一些文档中,我有一个密钥 school
。假设文件是:
{
"id" : "123",
"name" : "Robert",
"school" : "Public"
}
现在,school
并非出现在所有文档中。我想在所有文档中插入 school
键,其中它还没有默认字符串。
我使用的是 Elasticsearch 版本号 2.4.5
。我该怎么做?我在看批量更新吗?
我显然会为此使用 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 服务器。
在我的一些文档中,我有一个密钥 school
。假设文件是:
{
"id" : "123",
"name" : "Robert",
"school" : "Public"
}
现在,school
并非出现在所有文档中。我想在所有文档中插入 school
键,其中它还没有默认字符串。
我使用的是 Elasticsearch 版本号 2.4.5
。我该怎么做?我在看批量更新吗?
我显然会为此使用 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 服务器。