我们所有的ElasticSearch文档都包含一个名为Categories
的字段,其中包含一串用逗号分隔的值。逗号之间的每个值的长度为5个字符,并且该字段的范围可以为1到12个5个字符的值。
我需要对索引执行查询,该索引说要在所有文档的,ABCDE
字段的末尾附加Categories
,除非,该字段已经包含值{{ 1}},在这种情况下,请勿在字段中添加任何内容。
答案 0 :(得分:1)
您可以像下面那样使用ElasticSearch _update_by_query
POST my_index/my_type/_update_by_query
{
"query": {
"bool": {
"must_not": [
{
"match": {
"Categories": "ABCDE"
}
}
]
}
},
"script": {
"inline": "ctx._source.Categories += ', ABCDE'",
"lang": "painless"
}
}
如果“类别”不包含术语“ ', ABCDE'
”,则上述查询会将字符串ABCDE
附加到“类别”