297 lines
12 KiB
Plaintext
297 lines
12 KiB
Plaintext
[[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]
|
|
-----------------------------------
|
|
bin/plugin --install <org>/<user/component>/<version>
|
|
-----------------------------------
|
|
|
|
The plugins will be
|
|
automatically downloaded in this case from `download.elastic.co`,
|
|
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]
|
|
==== Proxy settings
|
|
|
|
To install a plugin via a proxy, you can pass the proxy details using the environment variables `proxyHost` and `proxyPort`.
|
|
|
|
On Linux and Mac, here is an example of setting it:
|
|
|
|
[source,shell]
|
|
-----------------------------------
|
|
bin/plugin -DproxyHost=host_name -DproxyPort=port_number --install mobz/elasticsearch-head
|
|
-----------------------------------
|
|
|
|
On Windows, here is an example of setting it:
|
|
|
|
[source,shell]
|
|
-----------------------------------
|
|
set JAVA_OPTS="-DproxyHost=host_name -DproxyPort=port_number"
|
|
bin/plugin --install mobz/elasticsearch-head
|
|
-----------------------------------
|
|
|
|
[float]
|
|
==== Lucene version dependent plugins
|
|
|
|
For some plugins, such as analysis plugins, a specific major Lucene version is
|
|
required to run. In that case, the plugin provides in its `es-plugin.properties`
|
|
file the Lucene version for which the plugin was built for.
|
|
|
|
If present at startup the node will check the Lucene version before loading the plugin.
|
|
|
|
You can disable that check using `plugins.check_lucene: false`.
|
|
|
|
[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/synhershko/elasticsearch-analysis-hebrew[Hebrew Analysis Plugin] (by Itamar Syn-Hershko)
|
|
* https://github.com/medcl/elasticsearch-analysis-pinyin[Pinyin Analysis Plugin] (by Medcl)
|
|
* https://github.com/medcl/elasticsearch-analysis-string2int[String2Integer Analysis Plugin] (by Medcl)
|
|
* https://github.com/duydo/elasticsearch-analysis-vietnamese[Vietnamese Analysis Plugin] (by Duy Do)
|
|
|
|
[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
|
|
|
|
.Supported by the community
|
|
* https://github.com/shikhar/eskka[eskka Discovery Plugin] (by Shikhar Bhushan)
|
|
* https://github.com/grantr/elasticsearch-srv-discovery[DNS SRV Discovery Plugin] (by Grant Rodgers)
|
|
|
|
[float]
|
|
[[transport]]
|
|
==== Transport Plugins
|
|
|
|
.Supported by Elasticsearch
|
|
* 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/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]
|
|
|
|
.Supported by the community
|
|
* https://github.com/hiredman/elasticsearch-lang-clojure[Clojure Language Plugin] (by Kevin Downey)
|
|
* https://github.com/NLPchina/elasticsearch-sql/[SQL language Plugin] (by nlpcn)
|
|
|
|
[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)
|
|
* https://github.com/xyu/elasticsearch-whatson[Whatson Plugin] (by Xiao Yu)
|
|
* https://github.com/lmenezes/elasticsearch-kopf[Kopf Plugin] (by lmenezes)
|
|
|
|
[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)
|
|
* https://github.com/wikimedia/search-repository-swift[Openstack Swift]
|
|
|
|
[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/YannBrrd/elasticsearch-entity-resolution[Entity Resolution Plugin] using http://github.com/larsga/Duke[Duke] for duplication detection (by Yann Barraud)
|
|
* 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)
|
|
* https://github.com/wikimedia/search-highlighter[Elasticsearch Experimental Highlighter] (by Wikimedia Foundation/Nik Everett)
|
|
* https://github.com/wikimedia/search-extra[Elasticsearch Trigram Accelerated Regular Expression Filter] (by Wikimedia Foundation/Nik Everett)
|
|
* https://github.com/salyh/elasticsearch-security-plugin[Elasticsearch Security Plugin] (by Hendrik Saly)
|
|
* https://github.com/codelibs/elasticsearch-taste[Elasticsearch Taste Plugin] (by CodeLibs Project)
|
|
* http://siren.solutions/siren/downloads/[Elasticsearch SIREn Plugin]: Nested data search (by SIREn Solutions)
|
|
|