The delete-by-query plugin adds support for deleteing all of the documents which match the specified query.
It is a replacement for the problematic delete-by-query functionality which has been removed from the Elasticsearch core.
Internally, it uses Scolle and Bluk APIs to delete documents in an efficient and safe manner. It is slower than the old delete-by-query functionality, but fixes the problems with the previous implementation.
TIP:
Queries which match large numbers of documents may run for a long time, as every document had to be deleted individually. Don't use delete-by-query to clean out all or most documents in an index. Rather create a new index and perhaps reindex the document you want to keep.
Installation:
This plugin can be installed by the plugin manager:
bin/plugin install delete-by-query
The plugin must be installed on every node in the cluster, and each node must be restarted after installation.
Removal:
This plugin can be removed with the following command:
bin/plugin remove delete-by-query
The node must be stoped before removing the plugin.
Using delete-by-query
The query can be provided using a simple query string as a paremeter.
curl -XDELETE 'localhost:9200/twitter/tweet/_query?q=user:kimchy&pretty'
Delete-by-query supports deletion accoss multiple indics and multiple types.
IMPORTANT:
Delete by query will only delete the version of the document that was visible to search at the time the request was executed. Any documents that have been reindexed or updated during executiong will not be deleted.
The response record some counters for each index, the counters are as follows:
-found:
-deleted:
-missing: The number of documents that were missing when the plugin tried to delete them. Missing documents were percent when the original query was run, but have already been deleted by another process.
-failed:
Scroll Docs
While a search request returns a single page of results, the scroll API can be used to get large numbers of results from a single search request, in much the same way as you would use a cursor on a traditional database.
= =!
学英语系列