[[api]]
== API Extension Plugins

API extension plugins add new functionality to Elasticsearch by adding new APIs or features, usually to do with search or mapping.

[float]
=== Core API extension plugins

The core API extension plugins are:

<<plugins-delete-by-query,Delete by Query>>::

The delete by query plugin adds support for deleting all of the documents
(from one or more indices) which match the specified query. It is a
replacement for the problematic _delete-by-query_ functionality which has been
removed from Elasticsearch core.

[float]
=== Community contributed API extension plugins

A number of plugins have been contributed by our community:

* https://github.com/carrot2/elasticsearch-carrot2[carrot2 Plugin]:
  Results clustering with http://project.carrot2.org/[carrot2] (by Dawid Weiss)

* https://github.com/wikimedia/search-extra[Elasticsearch Trigram Accelerated Regular Expression Filter]:
  (by Wikimedia Foundation/Nik Everett)

* https://github.com/kzwang/elasticsearch-image[Elasticsearch Image Plugin]:
  Uses https://code.google.com/p/lire/[Lire (Lucene Image Retrieval)] to allow users
  to index images and search for similar images (by Kevin Wang)

* https://github.com/wikimedia/search-highlighter[Elasticsearch Experimental Highlighter]:
  (by Wikimedia Foundation/Nik Everett)

* https://github.com/YannBrrd/elasticsearch-entity-resolution[Entity Resolution Plugin]:
  Uses http://github.com/larsga/Duke[Duke] for duplication detection (by Yann Barraud)

* https://github.com/NLPchina/elasticsearch-sql/[SQL language Plugin]:
  Allows Elasticsearch to be queried with SQL (by nlpcn)

* https://github.com/codelibs/elasticsearch-taste[Elasticsearch Taste Plugin]:
  Mahout Taste-based Collaborative Filtering implementation (by CodeLibs Project)

* https://github.com/hadashiA/elasticsearch-flavor[Elasticsearch Flavor Plugin] using
  http://mahout.apache.org/[Mahout] Collaboration filtering (by hadashiA)
* https://github.com/jurgc11/es-change-feed-plugin[WebSocket Change Feed Plugin] (by ForgeRock/Chris Clifton)

include::delete-by-query.asciidoc[]