目次
Proxy環境で働いている方も結構いると思います。 Twitter上で、Elasticsearchのpluginコマンドでプラグインがインストールできなくて困っている方がいたので、 調べてみたのでメモしておきます。
プラグインコマンド
Elasticsearchでは、プラグインという形でいくつかの便利な機能が公開されています。 形態素解析ライブラリのKuromojiを使うためのプラグインや、クラスタの管理がGUIで可能なkopfプラグインなどがあります。 公式、サードパーティいろいろです。
これらのプラグインをElasticsearchにインストールする場合、以下のコマンドを実行すれば
自動的にダウンロードしてplugins
ディレクトリにインストールしてくれます。
./bin/plugin -i elasticsearch/elasticsearch-analysis-kuromoji/2.3.0
ここで、elasticsearch/elasticsearch-analysis-kuromoji/2.3.0
がプラグインのパスになります(例では、提供元/プラグイン名/プラグインバージョン
となっています。)。
このplugin
コマンドがダウンロード元にアクセスに行くのですが、プロキシ環境だとプロキシの設定が必要になります。
プロキシの指定(Mac/LinuxとWindowsでの違い)
Mac/Linux(shコマンド)
以前の記事でプロキシのポート番号などの指定方法を 以下のように説明していました。 (※昔の記事のため、kuromojiプラグインのバージョンが古いです)
ElasticsearchのpluginコマンドはJavaで実装されています。(org.elasticsearch.common.http.client.HttpDownloadHelper) プラグインのダウンロードには、java.net.URL.openConnection()から取得URLConnectionを使用しています。
ですので、pluginのインストールを行う際に、Proxy環境にある場合は以下のようにコマンドを実行します。
./bin/plugin -DproxyPort=ポート番号 -DproxyHost=ホスト名 -i elasticsearch/elasticsearch-analysis-kuromoji/1.5.0
LinuxやMacの環境であれば、こちらのコマンドでプロキシの指定が可能です。 ただし、Windows環境ではうまくいきません。
Elasticsearchは、環境の違いにより、ダウンロードするファイルが異なります。 Windows環境の方は、zipファイルをダウンロードしてもらうようになっています。 elasticsearchコマンドおよびpluginコマンドがbat形式で提供されているのがzipファイルとなるからです。
Windows(batコマンド)
Windows環境では次のように指定します。
set JAVA_OPTS="-DproxyHost=ホスト名 -DproxyPort=ポート番号"
bin\plugin -i elasticsearch/elasticsearch-analysis-kuromoji/2.3.0
コマンドの実装方法が少し異なるために、このようになっています。
まとめ
プロキシ環境で利用される場合は、プラグインコマンドは上記のように実行していただければと。
公式ガイドには、これらの情報を追記するPRを送る予定です。 また、WindowsのコマンドでもMac/Linuxと同様にできたほうがいい気がするので、Issueをあげようと思います。
不明点などあれば、コメントいただければと。
comments powered by Disqus
See Also by Hugo
- elasticsearch-extended-analyzeを公開?
- いつも入れているElasticsearchのプラグイン
- elasticsearch-inquisitorプラグインの紹介
- 機械学習による検索ランキング改善ガイドを読みました
- Lucene Kuromoji for NEologdで指定した品詞の単語を抜き出すIngest Pluginを書いてみた #elasticsearchjp