Remove delete-by-query core docs
We moved delete-by-query from core to a plugin, but forgot to remove the core docs. Closes #12585
This commit is contained in:
parent
bd249448c3
commit
ac2e0fd6a0
|
@ -12,7 +12,6 @@ This section describes the following CRUD APIs:
|
|||
.Multi-document APIs
|
||||
* <<java-docs-multi-get>>
|
||||
* <<java-docs-bulk>>
|
||||
* <<java-docs-delete-by-query>>
|
||||
|
||||
NOTE: All CRUD APIs are single-index APIs. The `index` parameter accepts a single
|
||||
index name, or an `alias` which points to a single index.
|
||||
|
@ -28,5 +27,3 @@ include::docs/update.asciidoc[]
|
|||
include::docs/multi-get.asciidoc[]
|
||||
|
||||
include::docs/bulk.asciidoc[]
|
||||
|
||||
include::docs/delete-by-query.asciidoc[]
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
[[java-docs-delete-by-query]]
|
||||
=== Delete By Query API
|
||||
|
||||
The delete by query API allows one to delete documents from one or more
|
||||
indices and one or more types based on a <<java-query-dsl,query>>.
|
||||
|
||||
It's available as a plugin so you need to explicitly declare it in your project:
|
||||
|
||||
[source,xml]
|
||||
--------------------------------------------------
|
||||
<dependency>
|
||||
<groupId>org.elasticsearch.plugin</groupId>
|
||||
<artifactId>elasticsearch-delete-by-query</artifactId>
|
||||
<version>${es.version}</version>
|
||||
</dependency>
|
||||
--------------------------------------------------
|
||||
|
||||
To use it from Java, you can do the following:
|
||||
|
||||
[source,java]
|
||||
--------------------------------------------------
|
||||
import static org.elasticsearch.index.query.QueryBuilders.*;
|
||||
|
||||
DeleteByQueryResponse response = client
|
||||
.prepareDeleteByQuery("test") <1>
|
||||
.setQuery(termQuery("_type", "type1")) <2>
|
||||
.get();
|
||||
--------------------------------------------------
|
||||
<1> index name
|
||||
<2> query
|
||||
|
||||
For more information on the delete by query operation, check out the
|
||||
{ref}/docs-delete-by-query.html[delete_by_query API]
|
||||
docs.
|
|
@ -15,7 +15,6 @@ This section describes the following CRUD APIs:
|
|||
.Multi-document APIs
|
||||
* <<docs-multi-get>>
|
||||
* <<docs-bulk>>
|
||||
* <<docs-delete-by-query>>
|
||||
|
||||
NOTE: All CRUD APIs are single-index APIs. The `index` parameter accepts a single
|
||||
index name, or an `alias` which points to a single index.
|
||||
|
@ -34,8 +33,6 @@ include::docs/multi-get.asciidoc[]
|
|||
|
||||
include::docs/bulk.asciidoc[]
|
||||
|
||||
include::docs/delete-by-query.asciidoc[]
|
||||
|
||||
include::docs/termvectors.asciidoc[]
|
||||
|
||||
include::docs/multi-termvectors.asciidoc[]
|
||||
|
|
|
@ -1,147 +0,0 @@
|
|||
[[docs-delete-by-query]]
|
||||
== Delete By Query API
|
||||
|
||||
The delete by query API allows to delete documents from one or more
|
||||
indices and one or more types based on a query. The query can either be
|
||||
provided using a simple query string as a parameter, or using the
|
||||
<<query-dsl,Query DSL>> defined within the request
|
||||
body. Here is an example:
|
||||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
$ curl -XDELETE 'http://localhost:9200/twitter/tweet/_query?q=user:kimchy'
|
||||
|
||||
$ curl -XDELETE 'http://localhost:9200/twitter/tweet/_query' -d '{
|
||||
"query" : {
|
||||
"term" : { "user" : "kimchy" }
|
||||
}
|
||||
}
|
||||
'
|
||||
--------------------------------------------------
|
||||
|
||||
NOTE: The query being sent in the body must be nested in a `query` key, same as
|
||||
the <<search-search,search api>> works
|
||||
|
||||
Both above examples end up doing the same thing, which is delete all
|
||||
tweets from the twitter index for a certain user. The result of the
|
||||
commands is:
|
||||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
{
|
||||
"_indices" : {
|
||||
"twitter" : {
|
||||
"_shards" : {
|
||||
"total" : 10,
|
||||
"failed" : 0,
|
||||
"successful" : 10,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
--------------------------------------------------
|
||||
|
||||
Note, delete by query bypasses versioning support. Also, it is not
|
||||
recommended to delete "large chunks of the data in an index", many
|
||||
times, it's better to simply reindex into a new index.
|
||||
|
||||
[float]
|
||||
[[multiple-indices]]
|
||||
=== Multiple Indices and Types
|
||||
|
||||
The delete by query API can be applied to multiple types within an
|
||||
index, and across multiple indices. For example, we can delete all
|
||||
documents across all types within the twitter index:
|
||||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
$ curl -XDELETE 'http://localhost:9200/twitter/_query?q=user:kimchy'
|
||||
--------------------------------------------------
|
||||
|
||||
We can also delete within specific types:
|
||||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
$ curl -XDELETE 'http://localhost:9200/twitter/tweet,user/_query?q=user:kimchy'
|
||||
--------------------------------------------------
|
||||
|
||||
We can also delete all tweets with a certain tag across several indices
|
||||
(for example, when each user has his own index):
|
||||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
$ curl -XDELETE 'http://localhost:9200/kimchy,elasticsearch/_query?q=tag:wow'
|
||||
--------------------------------------------------
|
||||
|
||||
Or even delete across all indices:
|
||||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
$ curl -XDELETE 'http://localhost:9200/_all/_query?q=tag:wow'
|
||||
--------------------------------------------------
|
||||
|
||||
[float]
|
||||
[[delete-by-query-parameters]]
|
||||
=== Request Parameters
|
||||
|
||||
When executing a delete by query using the query parameter `q`, the
|
||||
query passed is a query string using Lucene query parser. There are
|
||||
additional parameters that can be passed:
|
||||
|
||||
[cols="<,<",options="header",]
|
||||
|=======================================================================
|
||||
|Name |Description
|
||||
|df |The default field to use when no field prefix is defined within the
|
||||
query.
|
||||
|
||||
|analyzer |The analyzer name to be used when analyzing the query string.
|
||||
|
||||
|default_operator |The default operator to be used, can be `AND` or
|
||||
`OR`. Defaults to `OR`.
|
||||
|=======================================================================
|
||||
|
||||
[float]
|
||||
[[request-body]]
|
||||
=== Request Body
|
||||
|
||||
The delete by query can use the <<query-dsl,Query
|
||||
DSL>> within its body in order to express the query that should be
|
||||
executed and delete all documents. The body content can also be passed
|
||||
as a REST parameter named `source`.
|
||||
|
||||
[float]
|
||||
[[delete-by-query-distributed]]
|
||||
=== Distributed
|
||||
|
||||
The delete by query API is broadcast across all primary shards, and from
|
||||
there, replicated across all shards replicas.
|
||||
|
||||
[float]
|
||||
[[delete-by-query-routing]]
|
||||
=== Routing
|
||||
|
||||
The routing value (a comma separated list of the routing values) can be
|
||||
specified to control which shards the delete by query request will be
|
||||
executed on.
|
||||
|
||||
[float]
|
||||
[[delete-by-query-consistency]]
|
||||
=== Write Consistency
|
||||
|
||||
Control if the operation will be allowed to execute based on the number
|
||||
of active shards within that partition (replication group). The values
|
||||
allowed are `one`, `quorum`, and `all`. The parameter to set it is
|
||||
`consistency`, and it defaults to the node level setting of
|
||||
`action.write_consistency` which in turn defaults to `quorum`.
|
||||
|
||||
For example, in a N shards with 2 replicas index, there will have to be
|
||||
at least 2 active shards within the relevant partition (`quorum`) for
|
||||
the operation to succeed. In a N shards with 1 replica scenario, there
|
||||
will need to be a single shard active (in this case, `one` and `quorum`
|
||||
is the same).
|
||||
|
||||
[float]
|
||||
[[limitations]]
|
||||
=== Limitations
|
||||
|
||||
The delete by query does not support the following queries and filters: `has_child` and `has_parent`.
|
|
@ -70,7 +70,7 @@ setting the routing parameter.
|
|||
|
||||
Note that deleting a parent document does not automatically delete its
|
||||
children. One way of deleting all child documents given a parent's id is
|
||||
to perform a <<docs-delete-by-query,delete by query>> on the child
|
||||
to use the `delete-by-query` plugin to perform a delete on the child
|
||||
index with the automatically generated (and indexed)
|
||||
field _parent, which is in the format parent_type#parent_id.
|
||||
|
||||
|
|
|
@ -478,17 +478,7 @@ Deleting a document is fairly straightforward. This example shows how to delete
|
|||
curl -XDELETE 'localhost:9200/customer/external/2?pretty'
|
||||
--------------------------------------------------
|
||||
|
||||
We also have the ability to delete multiple documents that match a query condition. This example shows how to delete all customers whose names contain "John":
|
||||
|
||||
[source,sh]
|
||||
--------------------------------------------------
|
||||
curl -XDELETE 'localhost:9200/customer/external/_query?pretty' -d '
|
||||
{
|
||||
"query": { "match": { "name": "John" } }
|
||||
}'
|
||||
--------------------------------------------------
|
||||
|
||||
Note above that the URI has changed to `/_query` to signify a delete-by-query API with the delete query criteria in the body, but we are still using the DELETE verb. Don't worry yet about the query syntax as we will cover that later in this tutorial.
|
||||
The `delete-by-query` plugin can delete all documents matching a specific query.
|
||||
|
||||
=== Batch Processing
|
||||
|
||||
|
|
|
@ -169,7 +169,7 @@ behaviour can be reenabled on an index-by-index basis with the setting:
|
|||
=== Search requests
|
||||
|
||||
While the `search` API takes a top-level `query` parameter, the
|
||||
<<search-count,`count`>>, <<docs-delete-by-query,`delete-by-query`>> and
|
||||
<<search-count,`count`>>, `delete-by-query` and
|
||||
<<search-validate,`validate-query`>> requests expected the whole body to be a
|
||||
query. These now _require_ a top-level `query` parameter:
|
||||
|
||||
|
|
|
@ -72,7 +72,7 @@ In addition, the following node settings related to routing have been deprecated
|
|||
=== Async replication
|
||||
|
||||
The `replication` parameter has been removed from all CRUD operations (index,
|
||||
update, delete, bulk, delete-by-query). These operations are now synchronous
|
||||
update, delete, bulk). These operations are now synchronous
|
||||
only, and a request will only return once the changes have been replicated to
|
||||
all active shards in the shard group.
|
||||
|
||||
|
|
|
@ -499,7 +499,7 @@ The `wildcard` and `regexp` query natively use a lot of memory and because the p
|
|||
this can easily take up the available memory in the heap space. If possible try to use a `prefix` query or ngramming to
|
||||
achieve the same result (with way less memory being used).
|
||||
|
||||
The delete-by-query API doesn't work to unregister a query, it only deletes the percolate documents from disk. In order
|
||||
The `delete-by-query` plugin doesn't work to unregister a query, it only deletes the percolate documents from disk. In order
|
||||
to update the registered queries in memory the index needs be closed and opened.
|
||||
|
||||
[float]
|
||||
|
|
Loading…
Reference in New Issue