[role="xpack"] [[put-search-application]] === Put Search Application beta::[] ++++ Put Search Application ++++ Creates or updates a Search Application. [[put-search-application-request]] ==== {api-request-title} `PUT _application/search_application/` [[put-search-application-prereqs]] ==== {api-prereq-title} Requires the `manage_search_application` cluster privilege. Also requires <> on all indices that are added to the Search Application. [[put-search-application-path-params]] ==== {api-path-parms-title} `create`:: (Optional, Boolean) If `true`, this request cannot replace or update existing Search Applications. Defaults to `false`. ``:: (Required, object) Contains parameters for a search application: + .Properties of `` objects [%collapsible%open] ==== `indices`:: (Required, array of strings) The <> associated with this search application. All indices need to exist in order to be added to a search application. `template`:: (Optional, object) The <> associated with this search application. The search application's template is only stored and accessible through the search application. - This search template must be a Mustache template. - The template must contain a Mustache script and script source. - The template may be modified with subsequent <> requests. - If no template is specified when creating a search application, or if a template is removed from a search application, we use the <> defined in the template examples as a default. - This template will be used by the <> API to execute searches. ==== [[put-search-application-response-codes]] ==== {api-response-codes-title} `404`:: Search Application `` does not exist. `409`:: Search Application `` exists and `create` is `true`. [[put-search-application-example]] ==== {api-examples-title} The following example creates a new Search Application called `my-app`: [source,console] ---- PUT _application/search_application/my-app?create { "indices": [ "index1", "index2" ], "template": { "script": { "source": { "query": { "query_string": { "query": "{{query_string}}", "default_field": "{{default_field}}" } } }, "params": { "query_string": "*", "default_field": "*" } } } } ---- // TEST[skip:TBD] The following example creates or updates an existing Search Application called `my-app`: [source,console] ---- PUT _application/search_application/my-app { "indices": [ "index1", "index2", "index3" ], "template": { "script": { "source": { "query": { "query_string": { "query": "{{query_string}}", "default_field": "{{default_field}}" } } }, "params": { "query_string": "*", "default_field": "*" } } } } ---- // TEST[skip:TBD]