How do I find where ElasticSearch is installing my plugins?
DirectoryElasticsearchDirectory Problem Overview
I have installed elasticsearch with brew install elasticsearch
. My plugins seem to reside in /usr/local/Cellar/elasticsearch/0.19.8/plugins
. With cat $( which plugin )
I see a ES_HOME
variable that contains the correct path.
Is there a way to ask elastic for ES_HOME
or the plugins directory?
EDIT
What I am looking for is the directory used by the plugin executable to install the plugins when I do plugin -install something
. I want to use that path in a script to fire up elastic search.
Directory Solutions
Solution 1 - Directory
To find your elasticsearch home directory & install plugin(s) follow these steps below.
Locate your home directory ( Look for Settings -> Path -> Home for value )
$ curl "localhost:9200/_nodes/settings?pretty=true"
Goto Location (Example settings.path.home value: /usr/local/Cellar/elasticsearch/1.5.0)
$ cd /usr/local/Cellar/elasticsearch/1.5.0
Install Plugin (Example plugin: mobz/elasticsearch-head)
$ bin/plugin -install mobz/elasticsearch-head
Solution 2 - Directory
I used this command:
$ curl "localhost:9200/_nodes?pretty=true&settings=true"
Check next setting: nodes - settings - path - plugins and use it as your plugins directory.
Solution 3 - Directory
I had the same problem as you and I was able to locate the ES_HOME directory by following @imotiv's suggestion.
Simply call PATH_TO_SERVER:9200/_cluster/nodes?settings=true&pretty=true
Therein you'll see the path.home
entry. That is your ES working directory.
Once you locate your ElasticSearch home folder, in my case /usr/share/elasticsearch
, cd
down to that location.
Once there, you could simply run bin/plugin -install elasticsearch/elasticsearch-analysis-phonetic/1.3.0
and it will automatically do the rest for you.
Hope this helps.
Solution 4 - Directory
Not totally sure what you are trying to achieve, but hopefully this will help. There are a couple of way to find the plugins directory for elasticsearch. You can set plugins: TRACE
in the logging.yml
file, it will cause elasticsearch to log the full path of plugins that it's loading. You can also execute
$ curl "localhost:9200/_cluster/nodes?settings=true&pretty=true"
to check the current settings. Elasticsearch is using location specified in the path.plugins
settings to load plugins. If path.plugins
is not set, it will use plugins
directory in the directory specified by the path.home
setting.