opensearch-docs-cn/_api-reference/script-apis/exec-stored-script.md

3.4 KiB

layout title parent nav_order
default Execute Painless stored script Script APIs 2

Execute Painless stored script

Runs a stored script written in the Painless language.

OpenSearch provides several ways to run a script; the following sections show how to run a script by passing script information in the request body of a GET <index>/_search request.

Request fields

Field Data type Description
query Object A filter that specifies documents to process.
script_fields Object Fields to include in output.
script Object ID of the script that produces a value for a field.

Sample request

The following request runs the stored script that was created in Create or update stored script. The script sums the ratings for each book and displays the sum in the total_ratings field in the output.

  • The script's target is the books index.

  • The "match_all": {} property value is an empty object indicating to process each document in the index.

  • The total_ratings field value is the result of the my-first-script execution. See Create or update stored script.

GET books/_search
{
   "query": {
    "match_all": {}
  },
  "script_fields": {
    "total_ratings": {
      "script": {
        "id": "my-first-script" 
      }
    }
  }
}

Sample response

The GET books/_search request returns the following fields:

{
  "took" : 2,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 3,
      "relation" : "eq"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "books",
        "_id" : "1",
        "_score" : 1.0,
        "fields" : {
          "total_ratings" : [
            12
          ]
        }
      },
      {
        "_index" : "books",
        "_id" : "2",
        "_score" : 1.0,
        "fields" : {
          "total_ratings" : [
            15
          ]
        }
      },
      {
        "_index" : "books",
        "_id" : "3",
        "_score" : 1.0,
        "fields" : {
          "total_ratings" : [
            8
          ]
        }
      }
    ]
  }
}

Response fields

Field Data type Description
took Integer How long the operation took in milliseconds.
timed_out Boolean Whether the operation timed out.
_shards Object Total number of shards processed and also the total number of successful, skipped, and not processed.
hits Object Contains high-level information about the documents processed and an array of hits objects. See Hits object.

Hits object

Field Data type Description
total Object Total number of documents processed and their relationship to the match request field.
max_score Double Highest relevance score returned from all the hits.
hits Array Information about each document that was processed. See Document object.

Document object

Field Data type Description
_index String Index that contains the document.
_id String Document ID.
_score Float Document's relevance score.
fields Object Fields and their value returned from the script.