plugins.asciidoc 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  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. Several plugins can
  14. be found under the https://github.com/elasticsearch[elasticsearch]
  15. organization in GitHub, starting with `elasticsearch-`.
  16. Installing plugins typically take the following form:
  17. [source,shell]
  18. -----------------------------------
  19. plugin --install <org>/<user/component>/<version>
  20. -----------------------------------
  21. The plugins will be
  22. automatically downloaded in this case from `download.elasticsearch.org`,
  23. and in case they don't exist there, from maven (central and sonatype).
  24. Note that when the plugin is located in maven central or sonatype
  25. repository, `<org>` is the artifact `groupId` and `<user/component>` is
  26. the `artifactId`.
  27. A plugin can also be installed directly by specifying the URL for it,
  28. for example:
  29. [source,shell]
  30. -----------------------------------
  31. bin/plugin --url file:///path/to/plugin --install plugin-name
  32. -----------------------------------
  33. You can run `bin/plugin -h`.
  34. [float]
  35. [[site-plugins]]
  36. ==== Site Plugins
  37. Plugins can have "sites" in them, any plugin that exists under the
  38. `plugins` directory with a `_site` directory, its content will be
  39. statically served when hitting `/_plugin/[plugin_name]/` url. Those can
  40. be added even after the process has started.
  41. Installed plugins that do not contain any java related content, will
  42. automatically be detected as site plugins, and their content will be
  43. moved under `_site`.
  44. The ability to install plugins from Github allows to easily install site
  45. plugins hosted there by downloading the actual repo, for example,
  46. running:
  47. [source,js]
  48. --------------------------------------------------
  49. bin/plugin --install mobz/elasticsearch-head
  50. bin/plugin --install lukas-vlcek/bigdesk
  51. --------------------------------------------------
  52. Will install both of those site plugins, with `elasticsearch-head`
  53. available under `http://localhost:9200/_plugin/head/` and `bigdesk`
  54. available under `http://localhost:9200/_plugin/bigdesk/`.
  55. [float]
  56. ==== Mandatory Plugins
  57. If you rely on some plugins, you can define mandatory plugins using the
  58. `plugin.mandatory` attribute, for example, here is a sample config:
  59. [source,js]
  60. --------------------------------------------------
  61. plugin.mandatory: mapper-attachments,lang-groovy
  62. --------------------------------------------------
  63. For safety reasons, if a mandatory plugin is not installed, the node
  64. will not start.
  65. [float]
  66. ==== Installed Plugins
  67. A list of the currently loaded plugins can be retrieved using the
  68. <<cluster-nodes-info,Node Info API>>.
  69. [float]
  70. ==== Removing plugins
  71. Removing plugins can either be done manually by removing them under the
  72. `plugins` directory, or using the `plugin` script.
  73. Removing plugins typically take the following form:
  74. [source,shell]
  75. -----------------------------------
  76. plugin --remove <pluginname>
  77. -----------------------------------
  78. [float]
  79. ==== Silent/Verbose mode
  80. When running the `plugin` script, you can get more information (debug mode) using `--verbose`.
  81. On the opposite, if you want `plugin` script to be silent, use `--silent` option.
  82. Note that exit codes could be:
  83. * `0`: everything was OK
  84. * `64`: unknown command or incorrect option parameter
  85. * `74`: IO error
  86. * `70`: other errors
  87. [source,shell]
  88. -----------------------------------
  89. bin/plugin --install mobz/elasticsearch-head --verbose
  90. plugin --remove head --silent
  91. -----------------------------------
  92. [float]
  93. ==== Timeout settings
  94. By default, the `plugin` script will wait indefinitely when downloading before failing.
  95. The timeout parameter can be used to explicitly specify how long it waits. Here is some examples of setting it to
  96. different values:
  97. [source,shell]
  98. -----------------------------------
  99. # Wait for 30 seconds before failing
  100. bin/plugin --install mobz/elasticsearch-head --timeout 30s
  101. # Wait for 1 minute before failing
  102. bin/plugin --install mobz/elasticsearch-head --timeout 1m
  103. # Wait forever (default)
  104. bin/plugin --install mobz/elasticsearch-head --timeout 0
  105. -----------------------------------
  106. [float]
  107. ==== Lucene version dependent plugins
  108. added[1.2.0]
  109. For some plugins, such as analysis plugins, a specific major Lucene version is
  110. required to run. In that case, the plugin provides in its `es-plugin.properties`
  111. file the Lucene version for which the plugin was built for.
  112. If present at startup the node will check the Lucene version before loading the plugin.
  113. You can disable that check using `plugins.check_lucene: false`.
  114. [float]
  115. [[known-plugins]]
  116. === Known Plugins
  117. [float]
  118. [[analysis-plugins]]
  119. ==== Analysis Plugins
  120. .Supported by Elasticsearch
  121. * https://github.com/elasticsearch/elasticsearch-analysis-icu[ICU Analysis plugin]
  122. * https://github.com/elasticsearch/elasticsearch-analysis-kuromoji[Japanese (Kuromoji) Analysis plugin].
  123. * https://github.com/elasticsearch/elasticsearch-analysis-smartcn[Smart Chinese Analysis Plugin]
  124. * https://github.com/elasticsearch/elasticsearch-analysis-stempel[Stempel (Polish) Analysis plugin]
  125. .Supported by the community
  126. * https://github.com/barminator/elasticsearch-analysis-annotation[Annotation Analysis Plugin] (by Michal Samek)
  127. * https://github.com/yakaz/elasticsearch-analysis-combo/[Combo Analysis Plugin] (by Olivier Favre, Yakaz)
  128. * https://github.com/jprante/elasticsearch-analysis-hunspell[Hunspell Analysis Plugin] (by Jörg Prante)
  129. * https://github.com/medcl/elasticsearch-analysis-ik[IK Analysis Plugin] (by Medcl)
  130. * https://github.com/suguru/elasticsearch-analysis-japanese[Japanese Analysis plugin] (by suguru).
  131. * https://github.com/medcl/elasticsearch-analysis-mmseg[Mmseg Analysis Plugin] (by Medcl)
  132. * https://github.com/chytreg/elasticsearch-analysis-morfologik[Morfologik (Polish) Analysis plugin] (by chytreg)
  133. * https://github.com/imotov/elasticsearch-analysis-morphology[Russian and English Morphological Analysis Plugin] (by Igor Motov)
  134. * https://github.com/synhershko/elasticsearch-analysis-hebrew[Hebrew Analysis Plugin] (by Itamar Syn-Hershko)
  135. * https://github.com/medcl/elasticsearch-analysis-pinyin[Pinyin Analysis Plugin] (by Medcl)
  136. * https://github.com/medcl/elasticsearch-analysis-string2int[String2Integer Analysis Plugin] (by Medcl)
  137. [float]
  138. [[discovery-plugins]]
  139. ==== Discovery Plugins
  140. .Supported by Elasticsearch
  141. * https://github.com/elasticsearch/elasticsearch-cloud-aws[AWS Cloud Plugin] - EC2 discovery and S3 Repository
  142. * https://github.com/elasticsearch/elasticsearch-cloud-azure[Azure Cloud Plugin] - Azure discovery
  143. * https://github.com/elasticsearch/elasticsearch-cloud-gce[Google Compute Engine Cloud Plugin] - GCE discovery
  144. .Supported by the community
  145. * https://github.com/shikhar/eskka[eskka Discovery Plugin] (by Shikhar Bhushan)
  146. [float]
  147. [[river]]
  148. ==== River Plugins
  149. .Supported by Elasticsearch
  150. * https://github.com/elasticsearch/elasticsearch-river-couchdb[CouchDB River Plugin]
  151. * https://github.com/elasticsearch/elasticsearch-river-rabbitmq[RabbitMQ River Plugin]
  152. * https://github.com/elasticsearch/elasticsearch-river-twitter[Twitter River Plugin]
  153. * https://github.com/elasticsearch/elasticsearch-river-wikipedia[Wikipedia River Plugin]
  154. .Supported by the community
  155. * https://github.com/domdorn/elasticsearch-river-activemq/[ActiveMQ River Plugin] (by Dominik Dorn)
  156. * https://github.com/albogdano/elasticsearch-river-amazonsqs[Amazon SQS River Plugin] (by Alex Bogdanovski)
  157. * https://github.com/xxBedy/elasticsearch-river-csv[CSV River Plugin] (by Martin Bednar)
  158. * http://www.pilato.fr/dropbox/[Dropbox River Plugin] (by David Pilato)
  159. * http://www.pilato.fr/fsriver/[FileSystem River Plugin] (by David Pilato)
  160. * https://github.com/obazoud/elasticsearch-river-git[Git River Plugin] (by Olivier Bazoud)
  161. * https://github.com/uberVU/elasticsearch-river-github[GitHub River Plugin] (by uberVU)
  162. * https://github.com/sksamuel/elasticsearch-river-hazelcast[Hazelcast River Plugin] (by Steve Samuel)
  163. * https://github.com/jprante/elasticsearch-river-jdbc[JDBC River Plugin] (by Jörg Prante)
  164. * https://github.com/qotho/elasticsearch-river-jms[JMS River Plugin] (by Steve Sarandos)
  165. * https://github.com/endgameinc/elasticsearch-river-kafka[Kafka River Plugin] (by Endgame Inc.)
  166. * https://github.com/tlrx/elasticsearch-river-ldap[LDAP River Plugin] (by Tanguy Leroux)
  167. * https://github.com/richardwilly98/elasticsearch-river-mongodb/[MongoDB River Plugin] (by Richard Louapre)
  168. * https://github.com/sksamuel/elasticsearch-river-neo4j[Neo4j River Plugin] (by Steve Samuel)
  169. * https://github.com/jprante/elasticsearch-river-oai/[Open Archives Initiative (OAI) River Plugin] (by Jörg Prante)
  170. * https://github.com/sksamuel/elasticsearch-river-redis[Redis River Plugin] (by Steve Samuel)
  171. * http://dadoonet.github.com/rssriver/[RSS River Plugin] (by David Pilato)
  172. * https://github.com/adamlofts/elasticsearch-river-sofa[Sofa River Plugin] (by adamlofts)
  173. * https://github.com/javanna/elasticsearch-river-solr/[Solr River Plugin] (by Luca Cavanna)
  174. * https://github.com/sunnygleason/elasticsearch-river-st9[St9 River Plugin] (by Sunny Gleason)
  175. * https://github.com/plombard/SubversionRiver[Subversion River Plugin] (by Pascal Lombard)
  176. * https://github.com/kzwang/elasticsearch-river-dynamodb[DynamoDB River Plugin] (by Kevin Wang)
  177. * https://github.com/salyh/elasticsearch-river-imap[IMAP/POP3 Email River Plugin] (by Hendrik Saly)
  178. * https://github.com/codelibs/elasticsearch-river-web[Web River Plugin] (by CodeLibs Project)
  179. * https://github.com/eea/eea.elasticsearch.river.rdf[EEA ElasticSearch RDF River Plugin] (by the European Environment Agency)
  180. [float]
  181. [[transport]]
  182. ==== Transport Plugins
  183. .Supported by Elasticsearch
  184. * https://github.com/elasticsearch/elasticsearch-transport-memcached[Memcached transport plugin]
  185. * https://github.com/elasticsearch/elasticsearch-transport-thrift[Thrift Transport]
  186. * https://github.com/elasticsearch/elasticsearch-transport-wares[Servlet transport]
  187. .Supported by the community
  188. * https://github.com/tlrx/transport-zeromq[ZeroMQ transport layer plugin] (by Tanguy Leroux)
  189. * https://github.com/sonian/elasticsearch-jetty[Jetty HTTP transport plugin] (by Sonian Inc.)
  190. * https://github.com/kzwang/elasticsearch-transport-redis[Redis transport plugin] (by Kevin Wang)
  191. [float]
  192. [[scripting]]
  193. ==== Scripting Plugins
  194. .Supported by Elasticsearch
  195. * https://github.com/hiredman/elasticsearch-lang-clojure[Clojure Language Plugin] (by Kevin Downey)
  196. * https://github.com/elasticsearch/elasticsearch-lang-groovy[Groovy lang Plugin]
  197. * https://github.com/elasticsearch/elasticsearch-lang-javascript[JavaScript language Plugin]
  198. * https://github.com/elasticsearch/elasticsearch-lang-python[Python language Plugin]
  199. [float]
  200. [[site]]
  201. ==== Site Plugins
  202. .Supported by the community
  203. * https://github.com/lukas-vlcek/bigdesk[BigDesk Plugin] (by Lukáš Vlček)
  204. * https://github.com/mobz/elasticsearch-head[Elasticsearch Head Plugin] (by Ben Birch)
  205. * https://github.com/royrusso/elasticsearch-HQ[Elasticsearch HQ] (by Roy Russo)
  206. * https://github.com/andrewvc/elastic-hammer[Hammer Plugin] (by Andrew Cholakian)
  207. * https://github.com/polyfractal/elasticsearch-inquisitor[Inquisitor Plugin] (by Zachary Tong)
  208. * https://github.com/karmi/elasticsearch-paramedic[Paramedic Plugin] (by Karel Minařík)
  209. * https://github.com/polyfractal/elasticsearch-segmentspy[SegmentSpy Plugin] (by Zachary Tong)
  210. * https://github.com/xyu/elasticsearch-whatson[Whatson Plugin] (by Xiao Yu)
  211. [float]
  212. [[repository-plugins]]
  213. ==== Snapshot/Restore Repository Plugins
  214. .Supported by Elasticsearch
  215. * https://github.com/elasticsearch/elasticsearch-hadoop/tree/master/repository-hdfs[Hadoop HDFS] Repository
  216. * https://github.com/elasticsearch/elasticsearch-cloud-aws#s3-repository[AWS S3] Repository
  217. .Supported by the community
  218. * https://github.com/kzwang/elasticsearch-repository-gridfs[GridFS] Repository (by Kevin Wang)
  219. [float]
  220. [[misc]]
  221. ==== Misc Plugins
  222. .Supported by Elasticsearch
  223. * https://github.com/elasticsearch/elasticsearch-mapper-attachments[Mapper Attachments Type plugin]
  224. .Supported by the community
  225. * https://github.com/carrot2/elasticsearch-carrot2[carrot2 Plugin]: Results clustering with carrot2 (by Dawid Weiss)
  226. * https://github.com/derryx/elasticsearch-changes-plugin[Elasticsearch Changes Plugin] (by Thomas Peuss)
  227. * https://github.com/johtani/elasticsearch-extended-analyze[Extended Analyze Plugin] (by Jun Ohtani)
  228. * https://github.com/spinscale/elasticsearch-graphite-plugin[Elasticsearch Graphite Plugin] (by Alexander Reelsen)
  229. * https://github.com/mattweber/elasticsearch-mocksolrplugin[Elasticsearch Mock Solr Plugin] (by Matt Weber)
  230. * https://github.com/viniciusccarvalho/elasticsearch-newrelic[Elasticsearch New Relic Plugin] (by Vinicius Carvalho)
  231. * https://github.com/swoop-inc/elasticsearch-statsd-plugin[Elasticsearch Statsd Plugin] (by Swoop Inc.)
  232. * https://github.com/endgameinc/elasticsearch-term-plugin[Terms Component Plugin] (by Endgame Inc.)
  233. * http://tlrx.github.com/elasticsearch-view-plugin[Elasticsearch View Plugin] (by Tanguy Leroux)
  234. * https://github.com/sonian/elasticsearch-zookeeper[ZooKeeper Discovery Plugin] (by Sonian Inc.)
  235. * https://github.com/kzwang/elasticsearch-image[Elasticsearch Image Plugin] (by Kevin Wang)
  236. * https://github.com/wikimedia/search-highlighter[Elasticsearch Experimental Highlighter] (by Wikimedia Foundation/Nik Everett)
  237. * https://github.com/salyh/elasticsearch-security-plugin[Elasticsearch Security Plugin] (by Hendrik Saly)
  238. * https://github.com/codelibs/elasticsearch-taste[Elasticsearch Taste Plugin] (by CodeLibs Project)
  239. * http://siren.solutions/siren/downloads/[Elasticsearch SIREn Plugin]: Nested data search (by SIREn Solutions)