| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298 | [[modules-plugins]]== Plugins[float]=== PluginsPlugins are a way to enhance the basic elasticsearch functionality in acustom manner. They range from adding custom mapping types, customanalyzers (in a more built in fashion), native scripts, custom discoveryand more.[float][[installing]]==== Installing pluginsInstalling plugins can either be done manually by placing them under the`plugins` directory, or using the `plugin` script. Several plugins canbe found under the https://github.com/elasticsearch[elasticsearch]organization in GitHub, starting with `elasticsearch-`.Installing plugins typically take the following form:[source,shell]-----------------------------------plugin --install <org>/<user/component>/<version>-----------------------------------The plugins will beautomatically downloaded in this case from `download.elasticsearch.org`,and in case they don't exist there, from maven (central and sonatype).Note that when the plugin is located in maven central or sonatyperepository, `<org>` is the artifact `groupId` and `<user/component>` isthe `artifactId`.A plugin can also be installed directly by specifying the URL for it,for example:[source,shell]-----------------------------------bin/plugin --url file:///path/to/plugin --install plugin-name-----------------------------------You can run `bin/plugin -h`.[float][[site-plugins]]==== Site PluginsPlugins can have "sites" in them, any plugin that exists under the`plugins` directory with a `_site` directory, its content will bestatically served when hitting `/_plugin/[plugin_name]/` url. Those canbe added even after the process has started.Installed plugins that do not contain any java related content, willautomatically be detected as site plugins, and their content will bemoved under `_site`.The ability to install plugins from Github allows to easily install siteplugins hosted there by downloading the actual repo, for example,running:[source,js]--------------------------------------------------bin/plugin --install mobz/elasticsearch-headbin/plugin --install lukas-vlcek/bigdesk--------------------------------------------------Will install both of those site plugins, with `elasticsearch-head`available under `http://localhost:9200/_plugin/head/` and `bigdesk`available under `http://localhost:9200/_plugin/bigdesk/`.[float]==== Mandatory PluginsIf you rely on some plugins, you can define mandatory plugins using the`plugin.mandatory` attribute, for example, here is a sample config:[source,js]--------------------------------------------------plugin.mandatory: mapper-attachments,lang-groovy--------------------------------------------------For safety reasons, if a mandatory plugin is not installed, the nodewill not start.[float]==== Installed PluginsA list of the currently loaded plugins can be retrieved using the<<cluster-nodes-info,Node Info API>>.[float]==== Removing pluginsRemoving plugins can either be done manually by removing them under the`plugins` directory, or using the `plugin` script.Removing plugins typically take the following form:[source,shell]-----------------------------------plugin --remove <pluginname>-----------------------------------[float]==== Silent/Verbose modeWhen running the `plugin` script, you can get more information (debug mode) using `--verbose`.On the opposite, if you want `plugin` script to be silent, use `--silent` option.Note that exit codes could be:* `0`: everything was OK* `64`: unknown command or incorrect option parameter* `74`: IO error* `70`: other errors[source,shell]-----------------------------------bin/plugin --install mobz/elasticsearch-head --verboseplugin --remove head --silent-----------------------------------[float]==== Timeout settingsBy default, the `plugin` script will wait indefinitely when downloading before failing.The timeout parameter can be used to explicitly specify how long it waits. Here is some examples of setting it todifferent values:[source,shell]-----------------------------------# Wait for 30 seconds before failingbin/plugin --install mobz/elasticsearch-head --timeout 30s# Wait for 1 minute before failingbin/plugin --install mobz/elasticsearch-head --timeout 1m# Wait forever (default)bin/plugin --install mobz/elasticsearch-head --timeout 0-----------------------------------added[1.1.0][float]==== Plugins isolationSince Elasticsearch 1.1, by default, each plugin is loaded in _isolation_ (in its dedicated `ClassLoader`) to avoid class clashes between the various plugins and their associated libraries. The default can be changed through the `plugins.isolation` property in `elasticsearch.yml`, by setting it to `false`:[source,js]--------------------------------------------------plugins.isolation: false--------------------------------------------------Do note that each plugin can specify its _mandatory_ isolation through the `isolation` property in its `es-plugin.properties` configuration. In this (rare) case, the plugin setting is used, overwriting whatever default used by Elasticsearch.[float][[known-plugins]]=== Known Plugins[float][[analysis-plugins]]==== Analysis Plugins.Supported by Elasticsearch* https://github.com/elasticsearch/elasticsearch-analysis-icu[ICU Analysis plugin]* https://github.com/elasticsearch/elasticsearch-analysis-kuromoji[Japanese (Kuromoji) Analysis plugin].* https://github.com/elasticsearch/elasticsearch-analysis-smartcn[Smart Chinese Analysis Plugin]* https://github.com/elasticsearch/elasticsearch-analysis-stempel[Stempel (Polish) Analysis plugin].Supported by the community* https://github.com/barminator/elasticsearch-analysis-annotation[Annotation Analysis Plugin] (by Michal Samek)* https://github.com/yakaz/elasticsearch-analysis-combo/[Combo Analysis Plugin] (by Olivier Favre, Yakaz)* https://github.com/jprante/elasticsearch-analysis-hunspell[Hunspell Analysis Plugin] (by Jörg Prante)* https://github.com/medcl/elasticsearch-analysis-ik[IK Analysis Plugin] (by Medcl)* https://github.com/suguru/elasticsearch-analysis-japanese[Japanese Analysis plugin] (by suguru).* https://github.com/medcl/elasticsearch-analysis-mmseg[Mmseg Analysis Plugin] (by Medcl)* https://github.com/chytreg/elasticsearch-analysis-morfologik[Morfologik (Polish) Analysis plugin] (by chytreg)* https://github.com/imotov/elasticsearch-analysis-morphology[Russian and English Morphological Analysis Plugin] (by Igor Motov)* https://github.com/medcl/elasticsearch-analysis-pinyin[Pinyin Analysis Plugin] (by Medcl)* https://github.com/medcl/elasticsearch-analysis-string2int[String2Integer Analysis Plugin] (by Medcl)[float][[discovery-plugins]]==== Discovery Plugins.Supported by Elasticsearch* https://github.com/elasticsearch/elasticsearch-cloud-aws[AWS Cloud Plugin] - EC2 discovery and S3 Repository* https://github.com/elasticsearch/elasticsearch-cloud-azure[Azure Cloud Plugin] - Azure discovery* https://github.com/elasticsearch/elasticsearch-cloud-gce[Google Compute Engine Cloud Plugin] - GCE discovery[float][[river]]==== River Plugins.Supported by Elasticsearch* https://github.com/elasticsearch/elasticsearch-river-couchdb[CouchDB River Plugin]* https://github.com/elasticsearch/elasticsearch-river-rabbitmq[RabbitMQ River Plugin]* https://github.com/elasticsearch/elasticsearch-river-twitter[Twitter River Plugin]* https://github.com/elasticsearch/elasticsearch-river-wikipedia[Wikipedia River Plugin].Supported by the community* https://github.com/domdorn/elasticsearch-river-activemq/[ActiveMQ River Plugin] (by Dominik Dorn)* https://github.com/albogdano/elasticsearch-river-amazonsqs[Amazon SQS River Plugin] (by Alex Bogdanovski)* https://github.com/xxBedy/elasticsearch-river-csv[CSV River Plugin] (by Martin Bednar)* http://www.pilato.fr/dropbox/[Dropbox River Plugin] (by David Pilato)* http://www.pilato.fr/fsriver/[FileSystem River Plugin] (by David Pilato)* https://github.com/obazoud/elasticsearch-river-git[Git River Plugin] (by Olivier Bazoud)* https://github.com/uberVU/elasticsearch-river-github[GitHub River Plugin] (by uberVU)* https://github.com/sksamuel/elasticsearch-river-hazelcast[Hazelcast River Plugin] (by Steve Samuel)* https://github.com/jprante/elasticsearch-river-jdbc[JDBC River Plugin] (by Jörg Prante)* https://github.com/qotho/elasticsearch-river-jms[JMS River Plugin] (by Steve Sarandos)* https://github.com/endgameinc/elasticsearch-river-kafka[Kafka River Plugin] (by Endgame Inc.)* https://github.com/tlrx/elasticsearch-river-ldap[LDAP River Plugin] (by Tanguy Leroux)* https://github.com/richardwilly98/elasticsearch-river-mongodb/[MongoDB River Plugin] (by Richard Louapre)* https://github.com/sksamuel/elasticsearch-river-neo4j[Neo4j River Plugin] (by Steve Samuel)* https://github.com/jprante/elasticsearch-river-oai/[Open Archives Initiative (OAI) River Plugin] (by Jörg Prante)* https://github.com/sksamuel/elasticsearch-river-redis[Redis River Plugin] (by Steve Samuel)* http://dadoonet.github.com/rssriver/[RSS River Plugin] (by David Pilato)* https://github.com/adamlofts/elasticsearch-river-sofa[Sofa River Plugin] (by adamlofts)* https://github.com/javanna/elasticsearch-river-solr/[Solr River Plugin] (by Luca Cavanna)* https://github.com/sunnygleason/elasticsearch-river-st9[St9 River Plugin] (by Sunny Gleason)* https://github.com/plombard/SubversionRiver[Subversion River Plugin] (by Pascal Lombard)* https://github.com/kzwang/elasticsearch-river-dynamodb[DynamoDB River Plugin] (by Kevin Wang)[float][[transport]]==== Transport Plugins.Supported by Elasticsearch* https://github.com/elasticsearch/elasticsearch-transport-memcached[Memcached transport plugin]* https://github.com/elasticsearch/elasticsearch-transport-thrift[Thrift Transport]* https://github.com/elasticsearch/elasticsearch-transport-wares[Servlet transport].Supported by the community* https://github.com/tlrx/transport-zeromq[ZeroMQ transport layer plugin] (by Tanguy Leroux)* https://github.com/sonian/elasticsearch-jetty[Jetty HTTP transport plugin] (by Sonian Inc.)* https://github.com/kzwang/elasticsearch-transport-redis[Redis transport plugin] (by Kevin Wang)[float][[scripting]]==== Scripting Plugins.Supported by Elasticsearch* https://github.com/hiredman/elasticsearch-lang-clojure[Clojure Language Plugin] (by Kevin Downey)* https://github.com/elasticsearch/elasticsearch-lang-groovy[Groovy lang Plugin]* https://github.com/elasticsearch/elasticsearch-lang-javascript[JavaScript language Plugin]* https://github.com/elasticsearch/elasticsearch-lang-python[Python language Plugin][float][[site]]==== Site Plugins.Supported by the community* https://github.com/lukas-vlcek/bigdesk[BigDesk Plugin] (by Lukáš Vlček)* https://github.com/mobz/elasticsearch-head[Elasticsearch Head Plugin] (by Ben Birch)* https://github.com/royrusso/elasticsearch-HQ[Elasticsearch HQ] (by Roy Russo)* https://github.com/andrewvc/elastic-hammer[Hammer Plugin] (by Andrew Cholakian)* https://github.com/polyfractal/elasticsearch-inquisitor[Inquisitor Plugin] (by Zachary Tong)* https://github.com/karmi/elasticsearch-paramedic[Paramedic Plugin] (by Karel Minařík)* https://github.com/polyfractal/elasticsearch-segmentspy[SegmentSpy Plugin] (by Zachary Tong)[float][[repository-plugins]]==== Snapshot/Restore Repository Plugins.Supported by Elasticsearch* https://github.com/elasticsearch/elasticsearch-hadoop/tree/master/repository-hdfs[Hadoop HDFS] Repository* https://github.com/elasticsearch/elasticsearch-cloud-aws#s3-repository[AWS S3] Repository.Supported by the community* https://github.com/kzwang/elasticsearch-repository-gridfs[GridFS] Repository (by Kevin Wang)[float][[misc]]==== Misc Plugins.Supported by Elasticsearch* https://github.com/elasticsearch/elasticsearch-mapper-attachments[Mapper Attachments Type plugin].Supported by the community* https://github.com/carrot2/elasticsearch-carrot2[carrot2 Plugin]: Results clustering with carrot2 (by Dawid Weiss)* https://github.com/derryx/elasticsearch-changes-plugin[Elasticsearch Changes Plugin] (by Thomas Peuss)* https://github.com/johtani/elasticsearch-extended-analyze[Extended Analyze Plugin] (by Jun Ohtani)* https://github.com/spinscale/elasticsearch-graphite-plugin[Elasticsearch Graphite Plugin] (by Alexander Reelsen)* https://github.com/mattweber/elasticsearch-mocksolrplugin[Elasticsearch Mock Solr Plugin] (by Matt Weber)* https://github.com/viniciusccarvalho/elasticsearch-newrelic[Elasticsearch New Relic Plugin] (by Vinicius Carvalho)* https://github.com/swoop-inc/elasticsearch-statsd-plugin[Elasticsearch Statsd Plugin] (by Swoop Inc.)* https://github.com/endgameinc/elasticsearch-term-plugin[Terms Component Plugin] (by Endgame Inc.)* http://tlrx.github.com/elasticsearch-view-plugin[Elasticsearch View Plugin] (by Tanguy Leroux)* https://github.com/sonian/elasticsearch-zookeeper[ZooKeeper Discovery Plugin] (by Sonian Inc.)* https://github.com/kzwang/elasticsearch-image[Elasticsearch Image Plugin] (by Kevin Wang)
 |