diff --git a/specification/_doc_ids/table.csv b/specification/_doc_ids/table.csv index e4b9e83a96..fadb27456a 100644 --- a/specification/_doc_ids/table.csv +++ b/specification/_doc_ids/table.csv @@ -583,6 +583,7 @@ redact-processor,https://www.elastic.co/docs/reference/enrich-processor/redact-p regexp-syntax,https://www.elastic.co/docs/reference/query-languages/query-dsl/regexp-syntax register-repository,https://www.elastic.co/docs/deploy-manage/tools/snapshot-and-restore/self-managed registered-domain-processor,https://www.elastic.co/docs/reference/enrich-processor/registered-domain-processor +reindex-indices,https://www.elastic.co/docs/reference/elasticsearch/rest-apis/reindex-indices relevance-scores,https://www.elastic.co/docs/explore-analyze/query-filter/languages/querydsl#relevance-scores remove-processor,https://www.elastic.co/docs/reference/enrich-processor/remove-processor remote-clusters-api-key,https://www.elastic.co/docs/deploy-manage/remote-clusters/remote-clusters-api-key diff --git a/specification/_global/reindex/ReindexRequest.ts b/specification/_global/reindex/ReindexRequest.ts index 41ee90bb54..af7c37ea7c 100644 --- a/specification/_global/reindex/ReindexRequest.ts +++ b/specification/_global/reindex/ReindexRequest.ts @@ -66,152 +66,13 @@ import { Destination, Source } from './types' * Note that the handling of other error types is unaffected by the `conflicts` property. * Additionally, if you opt to count version conflicts, the operation could attempt to reindex more documents from the source than `max_docs` until it has successfully indexed `max_docs` documents into the target or it has gone through every document in the source query. * - * NOTE: The reindex API makes no effort to handle ID collisions. - * The last document written will "win" but the order isn't usually predictable so it is not a good idea to rely on this behavior. - * Instead, make sure that IDs are unique by using a script. - * - * **Running reindex asynchronously** - * - * If the request contains `wait_for_completion=false`, Elasticsearch performs some preflight checks, launches the request, and returns a task you can use to cancel or get the status of the task. - * Elasticsearch creates a record of this task as a document at `_tasks/`. - * - * **Reindex from multiple sources** - * - * If you have many sources to reindex it is generally better to reindex them one at a time rather than using a glob pattern to pick up multiple sources. - * That way you can resume the process if there are any errors by removing the partially completed source and starting over. - * It also makes parallelizing the process fairly simple: split the list of sources to reindex and run each list in parallel. - * - * For example, you can use a bash script like this: - * - * ``` - * for index in i1 i2 i3 i4 i5; do - * curl -HContent-Type:application/json -XPOST localhost:9200/_reindex?pretty -d'{ - * "source": { - * "index": "'$index'" - * }, - * "dest": { - * "index": "'$index'-reindexed" - * } - * }' - * done - * ``` - * - * **Throttling** - * - * Set `requests_per_second` to any positive decimal number (`1.4`, `6`, `1000`, for example) to throttle the rate at which reindex issues batches of index operations. - * Requests are throttled by padding each batch with a wait time. - * To turn off throttling, set `requests_per_second` to `-1`. - * - * The throttling is done by waiting between batches so that the scroll that reindex uses internally can be given a timeout that takes into account the padding. - * The padding time is the difference between the batch size divided by the `requests_per_second` and the time spent writing. - * By default the batch size is `1000`, so if `requests_per_second` is set to `500`: - * - * ``` - * target_time = 1000 / 500 per second = 2 seconds - * wait_time = target_time - write_time = 2 seconds - .5 seconds = 1.5 seconds - * ``` - * - * Since the batch is issued as a single bulk request, large batch sizes cause Elasticsearch to create many requests and then wait for a while before starting the next set. - * This is "bursty" instead of "smooth". - * - * **Slicing** - * - * Reindex supports sliced scroll to parallelize the reindexing process. - * This parallelization can improve efficiency and provide a convenient way to break the request down into smaller parts. - * - * NOTE: Reindexing from remote clusters does not support manual or automatic slicing. - * - * You can slice a reindex request manually by providing a slice ID and total number of slices to each request. - * You can also let reindex automatically parallelize by using sliced scroll to slice on `_id`. - * The `slices` parameter specifies the number of slices to use. - * - * Adding `slices` to the reindex request just automates the manual process, creating sub-requests which means it has some quirks: - * - * * You can see these requests in the tasks API. These sub-requests are "child" tasks of the task for the request with slices. - * * Fetching the status of the task for the request with `slices` only contains the status of completed slices. - * * These sub-requests are individually addressable for things like cancellation and rethrottling. - * * Rethrottling the request with `slices` will rethrottle the unfinished sub-request proportionally. - * * Canceling the request with `slices` will cancel each sub-request. - * * Due to the nature of `slices`, each sub-request won't get a perfectly even portion of the documents. All documents will be addressed, but some slices may be larger than others. Expect larger slices to have a more even distribution. - * * Parameters like `requests_per_second` and `max_docs` on a request with `slices` are distributed proportionally to each sub-request. Combine that with the previous point about distribution being uneven and you should conclude that using `max_docs` with `slices` might not result in exactly `max_docs` documents being reindexed. - * * Each sub-request gets a slightly different snapshot of the source, though these are all taken at approximately the same time. - * - * If slicing automatically, setting `slices` to `auto` will choose a reasonable number for most indices. - * If slicing manually or otherwise tuning automatic slicing, use the following guidelines. - * - * Query performance is most efficient when the number of slices is equal to the number of shards in the index. - * If that number is large (for example, `500`), choose a lower number as too many slices will hurt performance. - * Setting slices higher than the number of shards generally does not improve efficiency and adds overhead. - * - * Indexing performance scales linearly across available resources with the number of slices. - * - * Whether query or indexing performance dominates the runtime depends on the documents being reindexed and cluster resources. - * - * **Modify documents during reindexing** - * - * Like `_update_by_query`, reindex operations support a script that modifies the document. - * Unlike `_update_by_query`, the script is allowed to modify the document's metadata. - * - * Just as in `_update_by_query`, you can set `ctx.op` to change the operation that is run on the destination. - * For example, set `ctx.op` to `noop` if your script decides that the document doesn’t have to be indexed in the destination. This "no operation" will be reported in the `noop` counter in the response body. - * Set `ctx.op` to `delete` if your script decides that the document must be deleted from the destination. - * The deletion will be reported in the `deleted` counter in the response body. - * Setting `ctx.op` to anything else will return an error, as will setting any other field in `ctx`. - * - * Think of the possibilities! Just be careful; you are able to change: - * - * * `_id` - * * `_index` - * * `_version` - * * `_routing` - * - * Setting `_version` to `null` or clearing it from the `ctx` map is just like not sending the version in an indexing request. - * It will cause the document to be overwritten in the destination regardless of the version on the target or the version type you use in the reindex API. - * - * **Reindex from remote** - * - * Reindex supports reindexing from a remote Elasticsearch cluster. - * The `host` parameter must contain a scheme, host, port, and optional path. - * The `username` and `password` parameters are optional and when they are present the reindex operation will connect to the remote Elasticsearch node using basic authentication. - * Be sure to use HTTPS when using basic authentication or the password will be sent in plain text. - * There are a range of settings available to configure the behavior of the HTTPS connection. - * - * When using Elastic Cloud, it is also possible to authenticate against the remote cluster through the use of a valid API key. - * Remote hosts must be explicitly allowed with the `reindex.remote.whitelist` setting. - * It can be set to a comma delimited list of allowed remote host and port combinations. - * Scheme is ignored; only the host and port are used. - * For example: - * - * ``` - * reindex.remote.whitelist: [otherhost:9200, another:9200, 127.0.10.*:9200, localhost:*"] - * ``` - * - * The list of allowed hosts must be configured on any nodes that will coordinate the reindex. - * This feature should work with remote clusters of any version of Elasticsearch. - * This should enable you to upgrade from any version of Elasticsearch to the current version by reindexing from a cluster of the old version. - * - * WARNING: Elasticsearch does not support forward compatibility across major versions. - * For example, you cannot reindex from a 7.x cluster into a 6.x cluster. - * - * To enable queries sent to older versions of Elasticsearch, the `query` parameter is sent directly to the remote host without validation or modification. - * - * NOTE: Reindexing from remote clusters does not support manual or automatic slicing. - * - * Reindexing from a remote server uses an on-heap buffer that defaults to a maximum size of 100mb. - * If the remote index includes very large documents you'll need to use a smaller batch size. - * It is also possible to set the socket read timeout on the remote connection with the `socket_timeout` field and the connection timeout with the `connect_timeout` field. - * Both default to 30 seconds. - * - * **Configuring SSL parameters** - * - * Reindex from remote supports configurable SSL settings. - * These must be specified in the `elasticsearch.yml` file, with the exception of the secure settings, which you add in the Elasticsearch keystore. - * It is not possible to configure SSL in the body of the reindex request. + * Refer to the linked documentation for examples of how to reindex documents. * @rest_spec_name reindex * @availability stack since=2.3.0 stability=stable * @availability serverless stability=stable visibility=public * @index_privileges read, write * @doc_tag document + * @ext_doc_id reindex-indices * @doc_id docs-reindex */ export interface Request extends RequestBase { diff --git a/specification/_global/reindex/examples/request/ReindexRequestExample10.yaml b/specification/_global/reindex/examples/request/ReindexRequestExample10.yaml deleted file mode 100644 index dbeaea2d47..0000000000 --- a/specification/_global/reindex/examples/request/ReindexRequestExample10.yaml +++ /dev/null @@ -1,98 +0,0 @@ -summary: Reindex with Painless -method_request: POST _reindex -description: > - You can use Painless to reindex daily indices to apply a new template to the existing documents. The script extracts the date from - the index name and creates a new index with `-1` appended. For example, all data from `metricbeat-2016.05.31` will be reindexed - into `metricbeat-2016.05.31-1`. -# type: request -value: "{ - - \ \"source\": { - - \ \"index\": \"metricbeat-*\" - - \ }, - - \ \"dest\": { - - \ \"index\": \"metricbeat\" - - \ }, - - \ \"script\": { - - \ \"lang\": \"painless\", - - \ \"source\": \"ctx._index = 'metricbeat-' + (ctx._index.substring('metricbeat-'.length(), ctx._index.length())) + '-1'\" - - \ } - - }" -alternatives: - - language: Python - code: |- - resp = client.reindex( - source={ - "index": "metricbeat-*" - }, - dest={ - "index": "metricbeat" - }, - script={ - "lang": "painless", - "source": "ctx._index = 'metricbeat-' + (ctx._index.substring('metricbeat-'.length(), ctx._index.length())) + '-1'" - }, - ) - - language: JavaScript - code: |- - const response = await client.reindex({ - source: { - index: "metricbeat-*", - }, - dest: { - index: "metricbeat", - }, - script: { - lang: "painless", - source: - "ctx._index = 'metricbeat-' + (ctx._index.substring('metricbeat-'.length(), ctx._index.length())) + '-1'", - }, - }); - - language: Ruby - code: |- - response = client.reindex( - body: { - "source": { - "index": "metricbeat-*" - }, - "dest": { - "index": "metricbeat" - }, - "script": { - "lang": "painless", - "source": "ctx._index = 'metricbeat-' + (ctx._index.substring('metricbeat-'.length(), ctx._index.length())) + '-1'" - } - } - ) - - language: PHP - code: >- - $resp = $client->reindex([ - "body" => [ - "source" => [ - "index" => "metricbeat-*", - ], - "dest" => [ - "index" => "metricbeat", - ], - "script" => [ - "lang" => "painless", - "source" => "ctx._index = 'metricbeat-' + (ctx._index.substring('metricbeat-'.length(), ctx._index.length())) + '-1'", - ], - ], - ]); - - language: curl - code: - "curl -X POST -H \"Authorization: ApiKey $ELASTIC_API_KEY\" -H \"Content-Type: application/json\" -d - '{\"source\":{\"index\":\"metricbeat-*\"},\"dest\":{\"index\":\"metricbeat\"},\"script\":{\"lang\":\"painless\",\"source\":\"\ - ctx._index = '\"'\"'metricbeat-'\"'\"' + (ctx._index.substring('\"'\"'metricbeat-'\"'\"'.length(), ctx._index.length())) + - '\"'\"'-1'\"'\"'\"}}' \"$ELASTICSEARCH_URL/_reindex\"" diff --git a/specification/_global/reindex/examples/request/ReindexRequestExample11.yaml b/specification/_global/reindex/examples/request/ReindexRequestExample11.yaml deleted file mode 100644 index d0f57bd8e8..0000000000 --- a/specification/_global/reindex/examples/request/ReindexRequestExample11.yaml +++ /dev/null @@ -1,113 +0,0 @@ -summary: Reindex a random subset -method_request: POST _reindex -description: > - Run `POST _reindex` to extract a random subset of the source for testing. You might need to adjust the `min_score` value depending - on the relative amount of data extracted from source. -# type: request -value: "{ - - \ \"max_docs\": 10, - - \ \"source\": { - - \ \"index\": \"my-index-000001\", - - \ \"query\": { - - \ \"function_score\" : { - - \ \"random_score\" : {}, - - \ \"min_score\" : 0.9 - - \ } - - \ } - - \ }, - - \ \"dest\": { - - \ \"index\": \"my-new-index-000001\" - - \ } - - }" -alternatives: - - language: Python - code: |- - resp = client.reindex( - max_docs=10, - source={ - "index": "my-index-000001", - "query": { - "function_score": { - "random_score": {}, - "min_score": 0.9 - } - } - }, - dest={ - "index": "my-new-index-000001" - }, - ) - - language: JavaScript - code: |- - const response = await client.reindex({ - max_docs: 10, - source: { - index: "my-index-000001", - query: { - function_score: { - random_score: {}, - min_score: 0.9, - }, - }, - }, - dest: { - index: "my-new-index-000001", - }, - }); - - language: Ruby - code: |- - response = client.reindex( - body: { - "max_docs": 10, - "source": { - "index": "my-index-000001", - "query": { - "function_score": { - "random_score": {}, - "min_score": 0.9 - } - } - }, - "dest": { - "index": "my-new-index-000001" - } - } - ) - - language: PHP - code: |- - $resp = $client->reindex([ - "body" => [ - "max_docs" => 10, - "source" => [ - "index" => "my-index-000001", - "query" => [ - "function_score" => [ - "random_score" => new ArrayObject([]), - "min_score" => 0.9, - ], - ], - ], - "dest" => [ - "index" => "my-new-index-000001", - ], - ], - ]); - - language: curl - code: - "curl -X POST -H \"Authorization: ApiKey $ELASTIC_API_KEY\" -H \"Content-Type: application/json\" -d - '{\"max_docs\":10,\"source\":{\"index\":\"my-index-000001\",\"query\":{\"function_score\":{\"random_score\":{},\"min_score\":\ - 0.9}}},\"dest\":{\"index\":\"my-new-index-000001\"}}' \"$ELASTICSEARCH_URL/_reindex\"" diff --git a/specification/_global/reindex/examples/request/ReindexRequestExample12.yaml b/specification/_global/reindex/examples/request/ReindexRequestExample12.yaml deleted file mode 100644 index 66e980472b..0000000000 --- a/specification/_global/reindex/examples/request/ReindexRequestExample12.yaml +++ /dev/null @@ -1,102 +0,0 @@ -summary: Reindex modified documents -method_request: POST _reindex -description: > - Run `POST _reindex` to modify documents during reindexing. This example bumps the version of the source document. -# type: request -value: "{ - - \ \"source\": { - - \ \"index\": \"my-index-000001\" - - \ }, - - \ \"dest\": { - - \ \"index\": \"my-new-index-000001\", - - \ \"version_type\": \"external\" - - \ }, - - \ \"script\": { - - \ \"source\": \"if (ctx._source.foo == 'bar') {ctx._version++; ctx._source.remove('foo')}\", - - \ \"lang\": \"painless\" - - \ } - - }" -alternatives: - - language: Python - code: |- - resp = client.reindex( - source={ - "index": "my-index-000001" - }, - dest={ - "index": "my-new-index-000001", - "version_type": "external" - }, - script={ - "source": "if (ctx._source.foo == 'bar') {ctx._version++; ctx._source.remove('foo')}", - "lang": "painless" - }, - ) - - language: JavaScript - code: |- - const response = await client.reindex({ - source: { - index: "my-index-000001", - }, - dest: { - index: "my-new-index-000001", - version_type: "external", - }, - script: { - source: - "if (ctx._source.foo == 'bar') {ctx._version++; ctx._source.remove('foo')}", - lang: "painless", - }, - }); - - language: Ruby - code: |- - response = client.reindex( - body: { - "source": { - "index": "my-index-000001" - }, - "dest": { - "index": "my-new-index-000001", - "version_type": "external" - }, - "script": { - "source": "if (ctx._source.foo == 'bar') {ctx._version++; ctx._source.remove('foo')}", - "lang": "painless" - } - } - ) - - language: PHP - code: |- - $resp = $client->reindex([ - "body" => [ - "source" => [ - "index" => "my-index-000001", - ], - "dest" => [ - "index" => "my-new-index-000001", - "version_type" => "external", - ], - "script" => [ - "source" => "if (ctx._source.foo == 'bar') {ctx._version++; ctx._source.remove('foo')}", - "lang" => "painless", - ], - ], - ]); - - language: curl - code: - "curl -X POST -H \"Authorization: ApiKey $ELASTIC_API_KEY\" -H \"Content-Type: application/json\" -d - '{\"source\":{\"index\":\"my-index-000001\"},\"dest\":{\"index\":\"my-new-index-000001\",\"version_type\":\"external\"},\"scr\ - ipt\":{\"source\":\"if (ctx._source.foo == '\"'\"'bar'\"'\"') {ctx._version++; - ctx._source.remove('\"'\"'foo'\"'\"')}\",\"lang\":\"painless\"}}' \"$ELASTICSEARCH_URL/_reindex\"" diff --git a/specification/_global/reindex/examples/request/ReindexRequestExample13.yaml b/specification/_global/reindex/examples/request/ReindexRequestExample13.yaml deleted file mode 100644 index d0bd227d8d..0000000000 --- a/specification/_global/reindex/examples/request/ReindexRequestExample13.yaml +++ /dev/null @@ -1,131 +0,0 @@ -summary: Reindex from remote on Elastic Cloud -method_request: POST _reindex -description: > - When using Elastic Cloud, you can run `POST _reindex` and authenticate against a remote cluster with an API key. -# type: request -value: "{ - - \ \"source\": { - - \ \"remote\": { - - \ \"host\": \"http://otherhost:9200\", - - \ \"username\": \"user\", - - \ \"password\": \"pass\" - - \ }, - - \ \"index\": \"my-index-000001\", - - \ \"query\": { - - \ \"match\": { - - \ \"test\": \"data\" - - \ } - - \ } - - \ }, - - \ \"dest\": { - - \ \"index\": \"my-new-index-000001\" - - \ } - - }" -alternatives: - - language: Python - code: |- - resp = client.reindex( - source={ - "remote": { - "host": "http://otherhost:9200", - "username": "user", - "password": "pass" - }, - "index": "my-index-000001", - "query": { - "match": { - "test": "data" - } - } - }, - dest={ - "index": "my-new-index-000001" - }, - ) - - language: JavaScript - code: |- - const response = await client.reindex({ - source: { - remote: { - host: "http://otherhost:9200", - username: "user", - password: "pass", - }, - index: "my-index-000001", - query: { - match: { - test: "data", - }, - }, - }, - dest: { - index: "my-new-index-000001", - }, - }); - - language: Ruby - code: |- - response = client.reindex( - body: { - "source": { - "remote": { - "host": "http://otherhost:9200", - "username": "user", - "password": "pass" - }, - "index": "my-index-000001", - "query": { - "match": { - "test": "data" - } - } - }, - "dest": { - "index": "my-new-index-000001" - } - } - ) - - language: PHP - code: |- - $resp = $client->reindex([ - "body" => [ - "source" => [ - "remote" => [ - "host" => "http://otherhost:9200", - "username" => "user", - "password" => "pass", - ], - "index" => "my-index-000001", - "query" => [ - "match" => [ - "test" => "data", - ], - ], - ], - "dest" => [ - "index" => "my-new-index-000001", - ], - ], - ]); - - language: curl - code: - "curl -X POST -H \"Authorization: ApiKey $ELASTIC_API_KEY\" -H \"Content-Type: application/json\" -d - '{\"source\":{\"remote\":{\"host\":\"http://otherhost:9200\",\"username\":\"user\",\"password\":\"pass\"},\"index\":\"my-inde\ - x-000001\",\"query\":{\"match\":{\"test\":\"data\"}}},\"dest\":{\"index\":\"my-new-index-000001\"}}' - \"$ELASTICSEARCH_URL/_reindex\"" diff --git a/specification/_global/reindex/examples/request/ReindexRequestExample2.yaml b/specification/_global/reindex/examples/request/ReindexRequestExample2.yaml deleted file mode 100644 index 4287b24477..0000000000 --- a/specification/_global/reindex/examples/request/ReindexRequestExample2.yaml +++ /dev/null @@ -1,84 +0,0 @@ -summary: Manual slicing -method_request: POST _reindex -description: > - Run `POST _reindex` to slice a reindex request manually. Provide a slice ID and total number of slices to each request. -# type: request -value: |- - { - "source": { - "index": "my-index-000001", - "slice": { - "id": 0, - "max": 2 - } - }, - "dest": { - "index": "my-new-index-000001" - } - } -alternatives: - - language: Python - code: |- - resp = client.reindex( - source={ - "index": "my-index-000001", - "slice": { - "id": 0, - "max": 2 - } - }, - dest={ - "index": "my-new-index-000001" - }, - ) - - language: JavaScript - code: |- - const response = await client.reindex({ - source: { - index: "my-index-000001", - slice: { - id: 0, - max: 2, - }, - }, - dest: { - index: "my-new-index-000001", - }, - }); - - language: Ruby - code: |- - response = client.reindex( - body: { - "source": { - "index": "my-index-000001", - "slice": { - "id": 0, - "max": 2 - } - }, - "dest": { - "index": "my-new-index-000001" - } - } - ) - - language: PHP - code: |- - $resp = $client->reindex([ - "body" => [ - "source" => [ - "index" => "my-index-000001", - "slice" => [ - "id" => 0, - "max" => 2, - ], - ], - "dest" => [ - "index" => "my-new-index-000001", - ], - ], - ]); - - language: curl - code: - 'curl -X POST -H "Authorization: ApiKey $ELASTIC_API_KEY" -H "Content-Type: application/json" -d - ''{"source":{"index":"my-index-000001","slice":{"id":0,"max":2}},"dest":{"index":"my-new-index-000001"}}'' - "$ELASTICSEARCH_URL/_reindex"' diff --git a/specification/_global/reindex/examples/request/ReindexRequestExample3.yaml b/specification/_global/reindex/examples/request/ReindexRequestExample3.yaml deleted file mode 100644 index 9d7d697f53..0000000000 --- a/specification/_global/reindex/examples/request/ReindexRequestExample3.yaml +++ /dev/null @@ -1,79 +0,0 @@ -summary: Automatic slicing -method_request: POST _reindex?slices=5&refresh -description: > - Run `POST _reindex?slices=5&refresh` to automatically parallelize using sliced scroll to slice on `_id`. The `slices` parameter - specifies the number of slices to use. -# type: request -value: "{ - - \ \"source\": { - - \ \"index\": \"my-index-000001\" - - \ }, - - \ \"dest\": { - - \ \"index\": \"my-new-index-000001\" - - \ } - - }" -alternatives: - - language: Python - code: |- - resp = client.reindex( - slices="5", - refresh=True, - source={ - "index": "my-index-000001" - }, - dest={ - "index": "my-new-index-000001" - }, - ) - - language: JavaScript - code: |- - const response = await client.reindex({ - slices: 5, - refresh: "true", - source: { - index: "my-index-000001", - }, - dest: { - index: "my-new-index-000001", - }, - }); - - language: Ruby - code: |- - response = client.reindex( - slices: "5", - refresh: "true", - body: { - "source": { - "index": "my-index-000001" - }, - "dest": { - "index": "my-new-index-000001" - } - } - ) - - language: PHP - code: |- - $resp = $client->reindex([ - "slices" => "5", - "refresh" => "true", - "body" => [ - "source" => [ - "index" => "my-index-000001", - ], - "dest" => [ - "index" => "my-new-index-000001", - ], - ], - ]); - - language: curl - code: - 'curl -X POST -H "Authorization: ApiKey $ELASTIC_API_KEY" -H "Content-Type: application/json" -d - ''{"source":{"index":"my-index-000001"},"dest":{"index":"my-new-index-000001"}}'' - "$ELASTICSEARCH_URL/_reindex?slices=5&refresh"' diff --git a/specification/_global/reindex/examples/request/ReindexRequestExample4.yaml b/specification/_global/reindex/examples/request/ReindexRequestExample4.yaml deleted file mode 100644 index cf9ac7468e..0000000000 --- a/specification/_global/reindex/examples/request/ReindexRequestExample4.yaml +++ /dev/null @@ -1,108 +0,0 @@ -summary: Routing -method_request: POST _reindex -description: > - By default if reindex sees a document with routing then the routing is preserved unless it's changed by the script. You can set - `routing` on the `dest` request to change this behavior. In this example, run `POST _reindex` to copy all documents from the - `source` with the company name `cat` into the `dest` with routing set to `cat`. -# type: request -value: "{ - - \ \"source\": { - - \ \"index\": \"source\", - - \ \"query\": { - - \ \"match\": { - - \ \"company\": \"cat\" - - \ } - - \ } - - \ }, - - \ \"dest\": { - - \ \"index\": \"dest\", - - \ \"routing\": \"=cat\" - - \ } - - }" -alternatives: - - language: Python - code: |- - resp = client.reindex( - source={ - "index": "source", - "query": { - "match": { - "company": "cat" - } - } - }, - dest={ - "index": "dest", - "routing": "=cat" - }, - ) - - language: JavaScript - code: |- - const response = await client.reindex({ - source: { - index: "source", - query: { - match: { - company: "cat", - }, - }, - }, - dest: { - index: "dest", - routing: "=cat", - }, - }); - - language: Ruby - code: |- - response = client.reindex( - body: { - "source": { - "index": "source", - "query": { - "match": { - "company": "cat" - } - } - }, - "dest": { - "index": "dest", - "routing": "=cat" - } - } - ) - - language: PHP - code: |- - $resp = $client->reindex([ - "body" => [ - "source" => [ - "index" => "source", - "query" => [ - "match" => [ - "company" => "cat", - ], - ], - ], - "dest" => [ - "index" => "dest", - "routing" => "=cat", - ], - ], - ]); - - language: curl - code: - "curl -X POST -H \"Authorization: ApiKey $ELASTIC_API_KEY\" -H \"Content-Type: application/json\" -d - '{\"source\":{\"index\":\"source\",\"query\":{\"match\":{\"company\":\"cat\"}}},\"dest\":{\"index\":\"dest\",\"routing\":\"=c\ - at\"}}' \"$ELASTICSEARCH_URL/_reindex\"" diff --git a/specification/_global/reindex/examples/request/ReindexRequestExample5.yaml b/specification/_global/reindex/examples/request/ReindexRequestExample5.yaml deleted file mode 100644 index 4bf87ee51f..0000000000 --- a/specification/_global/reindex/examples/request/ReindexRequestExample5.yaml +++ /dev/null @@ -1,75 +0,0 @@ -summary: Ingest pipelines -method_request: POST _reindex -description: Run `POST _reindex` and use the ingest pipelines feature. -# type: request -value: "{ - - \ \"source\": { - - \ \"index\": \"source\" - - \ }, - - \ \"dest\": { - - \ \"index\": \"dest\", - - \ \"pipeline\": \"some_ingest_pipeline\" - - \ } - - }" -alternatives: - - language: Python - code: |- - resp = client.reindex( - source={ - "index": "source" - }, - dest={ - "index": "dest", - "pipeline": "some_ingest_pipeline" - }, - ) - - language: JavaScript - code: |- - const response = await client.reindex({ - source: { - index: "source", - }, - dest: { - index: "dest", - pipeline: "some_ingest_pipeline", - }, - }); - - language: Ruby - code: |- - response = client.reindex( - body: { - "source": { - "index": "source" - }, - "dest": { - "index": "dest", - "pipeline": "some_ingest_pipeline" - } - } - ) - - language: PHP - code: |- - $resp = $client->reindex([ - "body" => [ - "source" => [ - "index" => "source", - ], - "dest" => [ - "index" => "dest", - "pipeline" => "some_ingest_pipeline", - ], - ], - ]); - - language: curl - code: - 'curl -X POST -H "Authorization: ApiKey $ELASTIC_API_KEY" -H "Content-Type: application/json" -d - ''{"source":{"index":"source"},"dest":{"index":"dest","pipeline":"some_ingest_pipeline"}}'' - "$ELASTICSEARCH_URL/_reindex"' diff --git a/specification/_global/reindex/examples/request/ReindexRequestExample6.yaml b/specification/_global/reindex/examples/request/ReindexRequestExample6.yaml deleted file mode 100644 index bffcabbf6b..0000000000 --- a/specification/_global/reindex/examples/request/ReindexRequestExample6.yaml +++ /dev/null @@ -1,101 +0,0 @@ -summary: Reindex with a query -method_request: POST _reindex -description: > - Run `POST _reindex` and add a query to the `source` to limit the documents to reindex. For example, this request copies documents - into `my-new-index-000001` only if they have a `user.id` of `kimchy`. -# type: request -value: "{ - - \ \"source\": { - - \ \"index\": \"my-index-000001\", - - \ \"query\": { - - \ \"term\": { - - \ \"user.id\": \"kimchy\" - - \ } - - \ } - - \ }, - - \ \"dest\": { - - \ \"index\": \"my-new-index-000001\" - - \ } - - }" -alternatives: - - language: Python - code: |- - resp = client.reindex( - source={ - "index": "my-index-000001", - "query": { - "term": { - "user.id": "kimchy" - } - } - }, - dest={ - "index": "my-new-index-000001" - }, - ) - - language: JavaScript - code: |- - const response = await client.reindex({ - source: { - index: "my-index-000001", - query: { - term: { - "user.id": "kimchy", - }, - }, - }, - dest: { - index: "my-new-index-000001", - }, - }); - - language: Ruby - code: |- - response = client.reindex( - body: { - "source": { - "index": "my-index-000001", - "query": { - "term": { - "user.id": "kimchy" - } - } - }, - "dest": { - "index": "my-new-index-000001" - } - } - ) - - language: PHP - code: |- - $resp = $client->reindex([ - "body" => [ - "source" => [ - "index" => "my-index-000001", - "query" => [ - "term" => [ - "user.id" => "kimchy", - ], - ], - ], - "dest" => [ - "index" => "my-new-index-000001", - ], - ], - ]); - - language: curl - code: - "curl -X POST -H \"Authorization: ApiKey $ELASTIC_API_KEY\" -H \"Content-Type: application/json\" -d - '{\"source\":{\"index\":\"my-index-000001\",\"query\":{\"term\":{\"user.id\":\"kimchy\"}}},\"dest\":{\"index\":\"my-new-index\ - -000001\"}}' \"$ELASTICSEARCH_URL/_reindex\"" diff --git a/specification/_global/reindex/examples/request/ReindexRequestExample7.yaml b/specification/_global/reindex/examples/request/ReindexRequestExample7.yaml deleted file mode 100644 index bf5afbe09d..0000000000 --- a/specification/_global/reindex/examples/request/ReindexRequestExample7.yaml +++ /dev/null @@ -1,77 +0,0 @@ -summary: Reindex with max_docs -method_request: POST _reindex -description: > - You can limit the number of processed documents by setting `max_docs`. For example, run `POST _reindex` to copy a single document - from `my-index-000001` to `my-new-index-000001`. -# type: request -value: "{ - - \ \"max_docs\": 1, - - \ \"source\": { - - \ \"index\": \"my-index-000001\" - - \ }, - - \ \"dest\": { - - \ \"index\": \"my-new-index-000001\" - - \ } - - }" -alternatives: - - language: Python - code: |- - resp = client.reindex( - max_docs=1, - source={ - "index": "my-index-000001" - }, - dest={ - "index": "my-new-index-000001" - }, - ) - - language: JavaScript - code: |- - const response = await client.reindex({ - max_docs: 1, - source: { - index: "my-index-000001", - }, - dest: { - index: "my-new-index-000001", - }, - }); - - language: Ruby - code: |- - response = client.reindex( - body: { - "max_docs": 1, - "source": { - "index": "my-index-000001" - }, - "dest": { - "index": "my-new-index-000001" - } - } - ) - - language: PHP - code: |- - $resp = $client->reindex([ - "body" => [ - "max_docs" => 1, - "source" => [ - "index" => "my-index-000001", - ], - "dest" => [ - "index" => "my-new-index-000001", - ], - ], - ]); - - language: curl - code: - 'curl -X POST -H "Authorization: ApiKey $ELASTIC_API_KEY" -H "Content-Type: application/json" -d - ''{"max_docs":1,"source":{"index":"my-index-000001"},"dest":{"index":"my-new-index-000001"}}'' - "$ELASTICSEARCH_URL/_reindex"' diff --git a/specification/_global/reindex/examples/request/ReindexRequestExample8.yaml b/specification/_global/reindex/examples/request/ReindexRequestExample8.yaml deleted file mode 100644 index 549eb679e0..0000000000 --- a/specification/_global/reindex/examples/request/ReindexRequestExample8.yaml +++ /dev/null @@ -1,86 +0,0 @@ -summary: Reindex selected fields -method_request: POST _reindex -description: > - You can use source filtering to reindex a subset of the fields in the original documents. For example, run `POST _reindex` the - reindex only the `user.id` and `_doc` fields of each document. -# type: request -value: "{ - - \ \"source\": { - - \ \"index\": \"my-index-000001\", - - \ \"_source\": [\"user.id\", \"_doc\"] - - \ }, - - \ \"dest\": { - - \ \"index\": \"my-new-index-000001\" - - \ } - - }" -alternatives: - - language: Python - code: |- - resp = client.reindex( - source={ - "index": "my-index-000001", - "_source": [ - "user.id", - "_doc" - ] - }, - dest={ - "index": "my-new-index-000001" - }, - ) - - language: JavaScript - code: |- - const response = await client.reindex({ - source: { - index: "my-index-000001", - _source: ["user.id", "_doc"], - }, - dest: { - index: "my-new-index-000001", - }, - }); - - language: Ruby - code: |- - response = client.reindex( - body: { - "source": { - "index": "my-index-000001", - "_source": [ - "user.id", - "_doc" - ] - }, - "dest": { - "index": "my-new-index-000001" - } - } - ) - - language: PHP - code: |- - $resp = $client->reindex([ - "body" => [ - "source" => [ - "index" => "my-index-000001", - "_source" => array( - "user.id", - "_doc", - ), - ], - "dest" => [ - "index" => "my-new-index-000001", - ], - ], - ]); - - language: curl - code: - 'curl -X POST -H "Authorization: ApiKey $ELASTIC_API_KEY" -H "Content-Type: application/json" -d - ''{"source":{"index":"my-index-000001","_source":["user.id","_doc"]},"dest":{"index":"my-new-index-000001"}}'' - "$ELASTICSEARCH_URL/_reindex"' diff --git a/specification/_global/reindex/examples/request/ReindexRequestExample9.yaml b/specification/_global/reindex/examples/request/ReindexRequestExample9.yaml deleted file mode 100644 index a45b9f8dfc..0000000000 --- a/specification/_global/reindex/examples/request/ReindexRequestExample9.yaml +++ /dev/null @@ -1,89 +0,0 @@ -summary: Reindex new field names -method_request: POST _reindex -description: > - A reindex operation can build a copy of an index with renamed fields. If your index has documents with `text` and `flag` fields, - you can change the latter field name to `tag` during the reindex. -# type: request -value: "{ - - \ \"source\": { - - \ \"index\": \"my-index-000001\" - - \ }, - - \ \"dest\": { - - \ \"index\": \"my-new-index-000001\" - - \ }, - - \ \"script\": { - - \ \"source\": \"ctx._source.tag = ctx._source.remove(\\\"flag\\\")\" - - \ } - - }" -alternatives: - - language: Python - code: |- - resp = client.reindex( - source={ - "index": "my-index-000001" - }, - dest={ - "index": "my-new-index-000001" - }, - script={ - "source": "ctx._source.tag = ctx._source.remove(\"flag\")" - }, - ) - - language: JavaScript - code: |- - const response = await client.reindex({ - source: { - index: "my-index-000001", - }, - dest: { - index: "my-new-index-000001", - }, - script: { - source: 'ctx._source.tag = ctx._source.remove("flag")', - }, - }); - - language: Ruby - code: |- - response = client.reindex( - body: { - "source": { - "index": "my-index-000001" - }, - "dest": { - "index": "my-new-index-000001" - }, - "script": { - "source": "ctx._source.tag = ctx._source.remove(\"flag\")" - } - } - ) - - language: PHP - code: |- - $resp = $client->reindex([ - "body" => [ - "source" => [ - "index" => "my-index-000001", - ], - "dest" => [ - "index" => "my-new-index-000001", - ], - "script" => [ - "source" => "ctx._source.tag = ctx._source.remove(\"flag\")", - ], - ], - ]); - - language: curl - code: - "curl -X POST -H \"Authorization: ApiKey $ELASTIC_API_KEY\" -H \"Content-Type: application/json\" -d - '{\"source\":{\"index\":\"my-index-000001\"},\"dest\":{\"index\":\"my-new-index-000001\"},\"script\":{\"source\":\"ctx._sourc\ - e.tag = ctx._source.remove(\\\"flag\\\")\"}}' \"$ELASTICSEARCH_URL/_reindex\""