Публикация некоторых общих запросов, которые я использовал при работе с ElasticSearch. Пожалуйста, прокомментируйте, хотите ли вы еще несколько образцов или иным образом. :-)

Обновление по запросу

//filter criteria for Update query
var filters = [ 
        { terms: { 'field1.keyword': [req.body.field1] } },
        { terms: { 'field2.keyword': [req.body.field2] } },
        { terms: { 'field3.keyword': [req.body.field3] } }
      ];
//fields to update in document -
var updateScript = `ctx._source['field4']='${req.body.field4}'; 
                        ctx._source['field5']='${req.body.field5}'`;
var updateQuery = {
        index: constants.INDEX_NAME,
        type: constants.INDEX_TYPE,
        body: {
            script: { "source" : updateScript },
            query: { bool: { must: filters } }
        },
        conflicts: "proceed"
    };
    client.updateByQuery(updateQuery, function(error, response) {
        handleResponse(error, response, constants.INDEX_NAME);
    });

Удалить по запросу —

var filters = [ 
    { terms: { 'field1.keyword': [req.body.field1] } },
    { terms: { 'field2.keyword': [req.body.field2] } }
     ];
 client.deleteByQuery({
        index: INDEX_NAME,
        body: { query: { bool: { must: filters } } },
        conflicts: "proceed"
    }, function(error, response) {
        if(error) {
            log.error(`Exception while deleting documents from index - ${constants.INDEX_NAME} - ${JSON.stringify(error)}`)
        }
        else
            log.debug(`Deleted documents from index - ${constants.INDEX_NAME} - ${JSON.stringify(response)}`)
    });

Удалить все документы индекса —

POST /indexName/docType/_delete_by_query
{
  "query": { 
        "match_all": {}
    }
}

Общий код для добавления дочернего документа в массив —

function addValueToArrayField(parentDocId, parentIndexName, parentIndexType, fieldName, value) {
    var sourceField = `ctx._source.${fieldName}.add(params.val)`;
return new Promise(function(resolve, reject) {
    client.update({ 
        index: parentIndexName,
        type: parentIndexType,
        id: parentDocId,
        body : {
            "script": {
                "source": `ctx._source.${fieldName}.add(params.val)`,
                "params": { "val": value }
            }
        }
    }, (error, response) => {
                if(error !== undefined ){
                    console.log(`addValueToArrayField() - Error while adding docs to ArraryField, ${JSON.stringify(error)}`);
                    return;
                }
                console.log(`addValueToArrayField(): Added the child ${JSON.stringify(value)} to ${parentIndexName} - ${parentDocId}`);
            }
        );
    });
}