Search code examples
amazon-web-serviceselasticsearchpython-requestsopensearchamazon-opensearch

OpenSearch/ElasticSearch Error: unknown query [query]


I am trying to run a request against AWS OpenSearch with the _update_by_query plugin. In my code (below) I am trying to update the value of the column "ccstatus" to the string "NULL" wherever it is Null (or not specified). However when I try to run it I get the following error:

{'error': {'root_cause': [{'type': 'parsing_exception', 'reason': 'unknown query [query]', 'line': 1, 'col': 19}], 'type': 'parsing_exception', 'reason': 'unknown query [query]', 'line': 1, 'col': 19, 'caused_by': {'type': 'named_object_not_found_exception', 'reason': '[1:19] unknown field [query]'}}, 'status': 400}

Here is my current Python code:

  update_query = {
    "script": {
      "source": "ctx._source.ccstatus = 'NULL'",
      "lang": "painless"
    },
    "query": {
     "match": {
      "ccstatus": None
    }
  }
}
    
update_result = requests.post("https://search-my-test-domain.us-east-1.es.amazonaws.com/temp_test_index/_update_by_query", auth=(username, password), data=json.dumps({"query":update_query}), headers=headers).json()

print (update_result)

What am I doing wrong? I am using OpenSearch 2.3.


Solution

  • You need to change this part

    data=json.dumps({"query":update_query})
    

    to just

    data=json.dumps(update_query)