ElasticSearch-查询以将字符串追加到文档字段中的现有字符串

时间:2019-07-08 17:40:07

标签: elasticsearch

我们所有的ElasticSearch文档都包含一个名为Categories的字段,其中包含一串用逗号分隔的值。逗号之间的每个值的长度为5个字符,并且该字段的范围可以为1到12个5个字符的值。

我需要对索引执行查询,该索引说要在所有文档的,ABCDE字段的末尾附加Categories除非,该字段已经包含值{{ 1}},在这种情况下,请勿在字段中添加任何内容。

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附加到“类别”