diff options
Diffstat (limited to 'docs/reference/modules/plugins.asciidoc')
-rw-r--r-- | docs/reference/modules/plugins.asciidoc | 283 |
1 files changed, 283 insertions, 0 deletions
diff --git a/docs/reference/modules/plugins.asciidoc b/docs/reference/modules/plugins.asciidoc new file mode 100644 index 0000000..6c39d72 --- /dev/null +++ b/docs/reference/modules/plugins.asciidoc @@ -0,0 +1,283 @@ +[[modules-plugins]] +== Plugins + +[float] +=== Plugins + +Plugins are a way to enhance the basic elasticsearch functionality in a +custom manner. They range from adding custom mapping types, custom +analyzers (in a more built in fashion), native scripts, custom discovery +and more. + +[float] +[[installing]] +==== Installing plugins + +Installing plugins can either be done manually by placing them under the +`plugins` directory, or using the `plugin` script. Several plugins can +be 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 be +automatically 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 sonatype +repository, `<org>` is the artifact `groupId` and `<user/component>` is +the `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 Plugins + +Plugins can have "sites" in them, any plugin that exists under the +`plugins` directory with a `_site` directory, its content will be +statically served when hitting `/_plugin/[plugin_name]/` url. Those can +be added even after the process has started. + +Installed plugins that do not contain any java related content, will +automatically be detected as site plugins, and their content will be +moved under `_site`. + +The ability to install plugins from Github allows to easily install site +plugins hosted there by downloading the actual repo, for example, +running: + +[source,js] +-------------------------------------------------- +bin/plugin --install mobz/elasticsearch-head +bin/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 Plugins + +If 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 node +will not start. + +[float] +==== Installed Plugins + +A list of the currently loaded plugins can be retrieved using the +<<cluster-nodes-info,Node Info API>>. + +[float] +==== Removing plugins + +Removing 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 mode + +When 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 --verbose +plugin --remove head --silent +----------------------------------- + +[float] +==== Timeout settings + +By 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 to +different values: + +[source,shell] +----------------------------------- +# Wait for 30 seconds before failing +bin/plugin --install mobz/elasticsearch-head --timeout 30s + +# Wait for 1 minute before failing +bin/plugin --install mobz/elasticsearch-head --timeout 1m + +# Wait forever (default) +bin/plugin --install mobz/elasticsearch-head --timeout 0 +----------------------------------- + +[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.) + + |