1
0

plugins.asciidoc 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. [[modules-plugins]]
  2. == Plugins
  3. [float]
  4. === Plugins
  5. Plugins are a way to enhance the basic elasticsearch functionality in a
  6. custom manner. They range from adding custom mapping types, custom
  7. analyzers (in a more built in fashion), native scripts, custom discovery
  8. and more.
  9. [float]
  10. [[installing]]
  11. ==== Installing plugins
  12. Installing plugins can either be done manually by placing them under the
  13. `plugins` directory, or using the `plugin` script.
  14. Installing plugins typically take the following form:
  15. [source,sh]
  16. -----------------------------------
  17. bin/plugin install plugin_name
  18. -----------------------------------
  19. The plugin will be automatically downloaded in this case from `download.elastic.co` download service using the
  20. same version as your elasticsearch version.
  21. For older version of elasticsearch (prior to 2.0.0) or community plugins, you would use the following form:
  22. [source,sh]
  23. -----------------------------------
  24. bin/plugin install <org>/<user/component>/<version>
  25. -----------------------------------
  26. The plugins will be automatically downloaded in this case from `download.elastic.co` (for older plugins),
  27. and in case they don't exist there, from maven (central and sonatype).
  28. Note that when the plugin is located in maven central or sonatype
  29. repository, `<org>` is the artifact `groupId` and `<user/component>` is
  30. the `artifactId`.
  31. A plugin can also be installed directly by specifying the URL for it,
  32. for example:
  33. [source,sh]
  34. -----------------------------------
  35. bin/plugin install plugin-name --url file:///path/to/plugin
  36. -----------------------------------
  37. You can run `bin/plugin -h`, or `bin/plugin install -h` for help on the install command
  38. as well as `bin/plugin remove -h` for help on the remove command..
  39. [float]
  40. [[site-plugins]]
  41. ==== Site Plugins
  42. Plugins can have "sites" in them, any plugin that exists under the
  43. `plugins` directory with a `_site` directory, its content will be
  44. statically served when hitting `/_plugin/[plugin_name]/` url. Those can
  45. be added even after the process has started.
  46. Installed plugins that do not contain any java related content, will
  47. automatically be detected as site plugins, and their content will be
  48. moved under `_site`.
  49. The ability to install plugins from Github allows to easily install site
  50. plugins hosted there by downloading the actual repo, for example,
  51. running:
  52. [source,js]
  53. --------------------------------------------------
  54. bin/plugin install mobz/elasticsearch-head
  55. bin/plugin install lukas-vlcek/bigdesk
  56. --------------------------------------------------
  57. Will install both of those site plugins, with `elasticsearch-head`
  58. available under `http://localhost:9200/_plugin/head/` and `bigdesk`
  59. available under `http://localhost:9200/_plugin/bigdesk/`.
  60. [float]
  61. ==== Mandatory Plugins
  62. If you rely on some plugins, you can define mandatory plugins using the
  63. `plugin.mandatory` attribute, for example, here is a sample config:
  64. [source,js]
  65. --------------------------------------------------
  66. plugin.mandatory: mapper-attachments,lang-groovy
  67. --------------------------------------------------
  68. For safety reasons, if a mandatory plugin is not installed, the node
  69. will not start.
  70. [float]
  71. ==== Installed Plugins
  72. A list of the currently loaded plugins can be retrieved using the
  73. <<cluster-nodes-info,Nodes Info API>>.
  74. [float]
  75. ==== Removing plugins
  76. Removing plugins can either be done manually by removing them under the
  77. `plugins` directory, or using the `plugin` script.
  78. Removing plugins typically take the following form:
  79. [source,sh]
  80. -----------------------------------
  81. plugin remove <pluginname>
  82. -----------------------------------
  83. [float]
  84. ==== Silent/Verbose mode
  85. When running the `plugin` script, you can get more information (debug mode) using `--verbose`.
  86. On the opposite, if you want `plugin` script to be silent, use `--silent` option.
  87. Note that exit codes could be:
  88. * `0`: everything was OK
  89. * `64`: unknown command or incorrect option parameter
  90. * `74`: IO error
  91. * `70`: other errors
  92. [source,sh]
  93. -----------------------------------
  94. bin/plugin install mobz/elasticsearch-head --verbose
  95. plugin remove head --silent
  96. -----------------------------------
  97. [float]
  98. ==== Timeout settings
  99. By default, the `plugin` script will wait indefinitely when downloading before failing.
  100. The timeout parameter can be used to explicitly specify how long it waits. Here is some examples of setting it to
  101. different values:
  102. [source,sh]
  103. -----------------------------------
  104. # Wait for 30 seconds before failing
  105. bin/plugin install mobz/elasticsearch-head --timeout 30s
  106. # Wait for 1 minute before failing
  107. bin/plugin install mobz/elasticsearch-head --timeout 1m
  108. # Wait forever (default)
  109. bin/plugin install mobz/elasticsearch-head --timeout 0
  110. -----------------------------------
  111. [float]
  112. ==== Proxy settings
  113. To install a plugin via a proxy, you can pass the proxy details using the environment variables `proxyHost` and `proxyPort`.
  114. [source,sh]
  115. -----------------------------------
  116. set JAVA_OPTS="-DproxyHost=host_name -DproxyPort=port_number"
  117. bin/plugin install mobz/elasticsearch-head
  118. -----------------------------------
  119. [float]
  120. ==== Lucene version dependent plugins
  121. For some plugins, such as analysis plugins, a specific major Lucene version is
  122. required to run. In that case, the plugin provides in its `es-plugin.properties`
  123. file the Lucene version for which the plugin was built for.
  124. If present at startup the node will check the Lucene version before loading the plugin.
  125. You can disable that check using `plugins.check_lucene: false`.
  126. [float]
  127. [[known-plugins]]
  128. === Known Plugins
  129. [float]
  130. [[analysis-plugins]]
  131. ==== Analysis Plugins
  132. .Supported by Elasticsearch
  133. * https://github.com/elasticsearch/elasticsearch-analysis-icu[ICU Analysis plugin]
  134. * https://github.com/elasticsearch/elasticsearch-analysis-kuromoji[Japanese (Kuromoji) Analysis plugin].
  135. * https://github.com/elasticsearch/elasticsearch-analysis-smartcn[Smart Chinese Analysis Plugin]
  136. * https://github.com/elasticsearch/elasticsearch-analysis-stempel[Stempel (Polish) Analysis plugin]
  137. .Supported by the community
  138. * https://github.com/barminator/elasticsearch-analysis-annotation[Annotation Analysis Plugin] (by Michal Samek)
  139. * https://github.com/yakaz/elasticsearch-analysis-combo/[Combo Analysis Plugin] (by Olivier Favre, Yakaz)
  140. * https://github.com/jprante/elasticsearch-analysis-hunspell[Hunspell Analysis Plugin] (by Jörg Prante)
  141. * https://github.com/medcl/elasticsearch-analysis-ik[IK Analysis Plugin] (by Medcl)
  142. * https://github.com/suguru/elasticsearch-analysis-japanese[Japanese Analysis plugin] (by suguru).
  143. * https://github.com/medcl/elasticsearch-analysis-mmseg[Mmseg Analysis Plugin] (by Medcl)
  144. * https://github.com/chytreg/elasticsearch-analysis-morfologik[Morfologik (Polish) Analysis plugin] (by chytreg)
  145. * https://github.com/imotov/elasticsearch-analysis-morphology[Russian and English Morphological Analysis Plugin] (by Igor Motov)
  146. * https://github.com/synhershko/elasticsearch-analysis-hebrew[Hebrew Analysis Plugin] (by Itamar Syn-Hershko)
  147. * https://github.com/medcl/elasticsearch-analysis-pinyin[Pinyin Analysis Plugin] (by Medcl)
  148. * https://github.com/medcl/elasticsearch-analysis-string2int[String2Integer Analysis Plugin] (by Medcl)
  149. * https://github.com/duydo/elasticsearch-analysis-vietnamese[Vietnamese Analysis Plugin] (by Duy Do)
  150. [float]
  151. [[discovery-plugins]]
  152. ==== Discovery Plugins
  153. .Supported by Elasticsearch
  154. * https://github.com/elasticsearch/elasticsearch-cloud-aws[AWS Cloud Plugin] - EC2 discovery and S3 Repository
  155. * https://github.com/elasticsearch/elasticsearch-cloud-azure[Azure Cloud Plugin] - Azure discovery
  156. * https://github.com/elasticsearch/elasticsearch-cloud-gce[Google Compute Engine Cloud Plugin] - GCE discovery
  157. .Supported by the community
  158. * https://github.com/shikhar/eskka[eskka Discovery Plugin] (by Shikhar Bhushan)
  159. * https://github.com/grantr/elasticsearch-srv-discovery[DNS SRV Discovery Plugin] (by Grant Rodgers)
  160. [float]
  161. [[transport]]
  162. ==== Transport Plugins
  163. .Supported by Elasticsearch
  164. * https://github.com/elasticsearch/elasticsearch-transport-wares[Servlet transport]
  165. .Supported by the community
  166. * https://github.com/tlrx/transport-zeromq[ZeroMQ transport layer plugin] (by Tanguy Leroux)
  167. * https://github.com/sonian/elasticsearch-jetty[Jetty HTTP transport plugin] (by Sonian Inc.)
  168. * https://github.com/kzwang/elasticsearch-transport-redis[Redis transport plugin] (by Kevin Wang)
  169. [float]
  170. [[scripting]]
  171. ==== Scripting Plugins
  172. .Supported by Elasticsearch
  173. * https://github.com/elasticsearch/elasticsearch-lang-groovy[Groovy lang Plugin]
  174. * https://github.com/elasticsearch/elasticsearch-lang-javascript[JavaScript language Plugin]
  175. * https://github.com/elasticsearch/elasticsearch-lang-python[Python language Plugin]
  176. .Supported by the community
  177. * https://github.com/hiredman/elasticsearch-lang-clojure[Clojure Language Plugin] (by Kevin Downey)
  178. * https://github.com/NLPchina/elasticsearch-sql/[SQL language Plugin] (by nlpcn)
  179. [float]
  180. [[site]]
  181. ==== Site Plugins
  182. .Supported by the community
  183. * https://github.com/lukas-vlcek/bigdesk[BigDesk Plugin] (by Lukáš Vlček)
  184. * https://github.com/mobz/elasticsearch-head[Elasticsearch Head Plugin] (by Ben Birch)
  185. * https://github.com/royrusso/elasticsearch-HQ[Elasticsearch HQ] (by Roy Russo)
  186. * https://github.com/andrewvc/elastic-hammer[Hammer Plugin] (by Andrew Cholakian)
  187. * https://github.com/polyfractal/elasticsearch-inquisitor[Inquisitor Plugin] (by Zachary Tong)
  188. * https://github.com/karmi/elasticsearch-paramedic[Paramedic Plugin] (by Karel Minařík)
  189. * https://github.com/polyfractal/elasticsearch-segmentspy[SegmentSpy Plugin] (by Zachary Tong)
  190. * https://github.com/xyu/elasticsearch-whatson[Whatson Plugin] (by Xiao Yu)
  191. * https://github.com/lmenezes/elasticsearch-kopf[Kopf Plugin] (by lmenezes)
  192. [float]
  193. [[repository-plugins]]
  194. ==== Snapshot/Restore Repository Plugins
  195. .Supported by Elasticsearch
  196. * https://github.com/elasticsearch/elasticsearch-hadoop/tree/master/repository-hdfs[Hadoop HDFS] Repository
  197. * https://github.com/elasticsearch/elasticsearch-cloud-aws#s3-repository[AWS S3] Repository
  198. .Supported by the community
  199. * https://github.com/kzwang/elasticsearch-repository-gridfs[GridFS] Repository (by Kevin Wang)
  200. * https://github.com/wikimedia/search-repository-swift[Openstack Swift]
  201. [float]
  202. [[misc]]
  203. ==== Misc Plugins
  204. .Supported by Elasticsearch
  205. * https://github.com/elasticsearch/elasticsearch-mapper-attachments[Mapper Attachments Type plugin]
  206. .Supported by the community
  207. * https://github.com/carrot2/elasticsearch-carrot2[carrot2 Plugin]: Results clustering with carrot2 (by Dawid Weiss)
  208. * https://github.com/derryx/elasticsearch-changes-plugin[Elasticsearch Changes Plugin] (by Thomas Peuss)
  209. * https://github.com/johtani/elasticsearch-extended-analyze[Extended Analyze Plugin] (by Jun Ohtani)
  210. * https://github.com/YannBrrd/elasticsearch-entity-resolution[Entity Resolution Plugin] using http://github.com/larsga/Duke[Duke] for duplication detection (by Yann Barraud)
  211. * https://github.com/spinscale/elasticsearch-graphite-plugin[Elasticsearch Graphite Plugin] (by Alexander Reelsen)
  212. * https://github.com/mattweber/elasticsearch-mocksolrplugin[Elasticsearch Mock Solr Plugin] (by Matt Weber)
  213. * https://github.com/viniciusccarvalho/elasticsearch-newrelic[Elasticsearch New Relic Plugin] (by Vinicius Carvalho)
  214. * https://github.com/swoop-inc/elasticsearch-statsd-plugin[Elasticsearch Statsd Plugin] (by Swoop Inc.)
  215. * https://github.com/endgameinc/elasticsearch-term-plugin[Terms Component Plugin] (by Endgame Inc.)
  216. * http://tlrx.github.com/elasticsearch-view-plugin[Elasticsearch View Plugin] (by Tanguy Leroux)
  217. * https://github.com/sonian/elasticsearch-zookeeper[ZooKeeper Discovery Plugin] (by Sonian Inc.)
  218. * https://github.com/kzwang/elasticsearch-image[Elasticsearch Image Plugin] (by Kevin Wang)
  219. * https://github.com/wikimedia/search-highlighter[Elasticsearch Experimental Highlighter] (by Wikimedia Foundation/Nik Everett)
  220. * https://github.com/wikimedia/search-extra[Elasticsearch Trigram Accelerated Regular Expression Filter] (by Wikimedia Foundation/Nik Everett)
  221. * https://github.com/salyh/elasticsearch-security-plugin[Elasticsearch Security Plugin] (by Hendrik Saly)
  222. * https://github.com/codelibs/elasticsearch-taste[Elasticsearch Taste Plugin] (by CodeLibs Project)
  223. * http://siren.solutions/siren/downloads/[Elasticsearch SIREn Plugin]: Nested data search (by SIREn Solutions)