One of the main features of ElasticSearch is the possibility to extend it with plugins. Plugins extend ElasticSearch features and functionality in several ways. There are two kinds of plugins:

  • Site plugins: These are used to serve static content at their entry points. They are mainly used to create a management application for the monitoring and administration of a cluster. The most common site plugins are:
  • Native plugins: These are the .jar files that contain the application code. They are used for:
    • Rivers (plugins that allow you to import data from DBMS or other sources)
    • Scripting Language Engines (JavaScript, Python, Scala, and Ruby)
    • Custom analyzers, tokenizers, and scoring
    • REST entry points
    • Supporting new protocols (Thrift, memcache, and so on)
    • Supporting new storages (Hadoop)