как добавить новое поле в документ безболезненным скриптом

есть ли способ создать поле в документе безболезненным скриптом, если оно не существует?

я использую что-то вроде:

     if(!ctx._source.tags.contains(....)

но поле тегов может отсутствовать в документе

это можно сделать?

Спасибо.


person rontoher    schedule 31.05.2018    source источник


Ответы (1)


Если вы планируете использовать _update_by_query API, я бы рекомендовал вам сделать что-то вроде:

POST your_index/_update_by_query
{
  "query": {
    "bool": {
      "must_not": {
        "exists": {
          "field": "tags"
        }
      }
    }
  },
  "script": {
    "source": "ctx._source.tags = ''"
  }
}

В противном случае, просто используя безболезненно, вы можете сделать что-то вроде:

{
  "script": {
    "source": """
      if(ctx._source.tags == null) {
        ctx._source.tags = null;
      }
    """
  }
}
person glenacota    schedule 06.03.2019