オープンソースソフトウェア(OSS)のElasticsearchとFessを利用して、Windows10に無料で全文検索サーバーを構築する手順をまとめる。
このエントリで記述する内容は下記の通り。
- Windows10にElasticsearchをインストールする手順
- Windows10にFessをインストールする手順
- ElasticsearchとFessの連携を設定する手順
ElasticsearchとFessを使うために必要な条件
ElasticsearchとFessで全文検索サーバーを構築するWindows10には、Java(JDK)がインストールされていること。
筆者は、Java SE Development Kit 13 – Downloadsからjdk-13.0.1_windows-x64_bin.exeをダウンロードしてJDK環境を構築した。
一方、httpdサーバーやMySQLなどのデータベースは不要だ。
今回は、Windows10の下記ディレクトリに全文検索サーバーを導入する。
- Elasticsearchのインストールドライブとディレクトリ
- d:¥Apps¥elasticsearch-7.5.1
- Fessのインストールドライブとディレクトリ
- d:¥Apps¥fess-13.5.0
全文検索サーバー構築のためにWindows10にインストールするもの
今回、Windows10に構築する全文検索サーバーには、下記をインストールする。
- Fess(全文検索サーバー)
- Elasticsearch(全文検索エンジン)
Windows10に全文検索サーバーを構築する手順
Windows10に全文検索サーバーを構築する手順の概略は、下記の通り。
- Fessのダウンロード
- Elasticsearchのダウンロード
- Fessのインストール&設定
- Elasticsearchのインストール&設定
Fessのダウンロード
Fessは、下記よりfess-13.5.0.zipをダウンロードする。
Elasticsearchのダウンロード
Elasticsearchは、下記よりelasticsearch-7.5.1-windows-x86_64.zipをダウンロードする。
Fessのインストールと設定
Fessのインストールは、zipファイルを任意のディレクトリに解凍するだけだ。
今回は、fess-13.5.0.zipを、dドライブのAppsディレクトリに解凍する。
解凍すると、d:¥Apps¥fess-13.5.0 というディレクトリに、Fessのモジュール一式が展開される。
Fess起動バッチファイルの編集
Fessの起動バッチファイルを環境に合わせて編集する。
編集対象のバッチファイルは、「D:¥Apps¥fess-13.5.0¥bin」ディレクトリにある fess.in.bat ファイルだ。
fess.in.batを開くと、ファイルの最後尾付近に下記コードがある。
REM External elasticsearch cluster REM set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.es.http_address=http://localhost:9200 REM set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.dictionary.path=%ES_HOME%/config/
「REM」は、Dosのコマンドで、バッチファイルにコメントを記述するためのコマンドである。
つまり、上記3行のコマンドは、コメントアウトされているということになる。
このコマンドを下記のように書き換える。
REM External elasticsearch cluster
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.es.http_address=http://localhost:9200
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.dictionary.path=d:/Apps/elasticsearch-7.5.1/config/
最初のsetコマンドは、コメント(REM)を外すだけ。
2番目のsetコマンドでは、fess.dictionary.pathの値を設定する。
ここに設定する値は、elasticsearch.ymlファイルのconfigsync.config_pathに設定する値と同じパスを設定する。
今回の例では、
d:/Apps/elasticsearch-7.5.1/config/
を記述する。
Elasticsearchのインストールと設定
Elasticsearchのインストールは、zipファイルを任意のディレクトリに解凍するだけだ。
今回は、elasticsearch-7.5.1-windows-x86_64.zipを、dドライブのAppsディレクトリに解凍する。
解凍すると、d:¥Apps¥elasticsearch-7.5.1 というディレクトリに、Elasticsearchのモジュール一式が展開される。
ElasticsearchにFessのプラグインをインストールする
Elasticsearchの機能を拡張するためのプラグインが、Fessから提供されている。
Windows10のコマンドプロンプトを起動し、下記コマンドを実行すると、Elasticsearch用のFess拡張プラグインがインストールされる。
尚、下記に示したコマンドは、Elasticsearchが「d:¥Apps¥elasticsearch-7.5.1」に展開されている前提である。
d:¥Apps¥elasticsearch-7.5.1¥bin¥elasticsearch-plugin install org.codelibs:elasticsearch-analysis-fess:7.5.0
d:¥Apps¥elasticsearch-7.5.1¥bin¥elasticsearch-plugin install org.codelibs:elasticsearch-analysis-extension:7.5.0
d:¥Apps¥elasticsearch-7.5.1¥bin¥elasticsearch-plugin install org.codelibs:elasticsearch-configsync:7.5.0
d:¥Apps¥elasticsearch-7.5.1¥bin¥elasticsearch-plugin install org.codelibs:elasticsearch-dataformat:7.5.0
d:¥Apps¥elasticsearch-7.5.1¥bin¥elasticsearch-plugin install org.codelibs:elasticsearch-minhash:7.5.0
上記5つのコマンドを実行すると、Elasticsearchのpluginsディレクトリに下記ディレクトリが作成されているはずだ。
- analysis-extension
- analysis-fess
- configsync
- dataformat
- minhash
また、上記コマンドを実行すると、コマンドプロンプト上には下記の様なメッセージが表示される。
インストールの実行を確認するメッセージが表示されるので、「y」を入力して、プラグインのインストールをする。
D:\>d:\Apps\elasticsearch-7.5.1\bin\elasticsearch-plugin install org.codelibs:elasticsearch-analysis-fess:7.5.0
-> Downloading org.codelibs:elasticsearch-analysis-fess:7.5.0 from maven central
[=================================================] 100%??
Warning: sha512 not found, falling back to sha1. This behavior is deprecated and will be removed in a future release. Please update the plugin to use a sha512 checksum.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: plugin requires additional permissions @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.lang.RuntimePermission accessDeclaredMembers
* java.lang.RuntimePermission getClassLoader
* java.lang.reflect.ReflectPermission suppressAccessChecks
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.
Continue with installation? [y/N]y
-> Installed analysis-fess
Elasticsearch設定ファイルの編集
Elasticsearchを展開した際に、デフォルトの設定ファイル(elasticsearch.yml)が既に在るので、そのelasticsearch.ymlを編集する。
今回の環境では、d:¥Apps¥elasticsearch-7.5.1¥configディレクトリに、elasticsearch.ymlが在る。
elasticsearch.ymlを開き、最終行に下記を追記する。
configsync.config_path: d:\Apps\elasticsearch-7.5.1\config\
設定するパス(d:¥Apps¥elasticsearch-7.5.1¥config¥)は、Fessの起動バッチファイル(fess.in.bat)内にも同じ内容を設定することになる。
全文検索サーバーの起動
全文検索サーバーの起動手順は下記の通り。
- Elasticsearchの起動
- Fessの起動
Elasticsearchの起動
Elasticsearchの起動は、コマンドプロンプトを開き、elasticsearch.batというバッチファイルを起動する。
elasticsearch.batファイルは、Elasticsearchを展開したディレクトリにあるbinディレクトリにある。
今回の例では、D:¥Apps¥elasticsearch-7.5.1¥bin ディレクトリにelasticsearch.batがある。
elasticsearch.batを起動すると、コマンドプロンプト画面には、起動中のログのようなメッセージが表示される。
Fessの起動
Fessの起動は、コマンドプロンプトを開き、fess.batというバッチファイルを起動する。
fess.batファイルはFessを展開したディレクトリにあるbinディレクトリにある。
今回の例では、D:¥Apps¥fess-13.5.0¥bin ディレクトリにfess.batがある。
elasticsearchの起動と異なり、fessを起動しても、コマンドプロンプトの画面にログのようなメッセージは表示されない。
とても静かに起動がされるので、動作しているかどうか不安になる。
ブラウザを起動して、localhost:8080にアクセスするとFessの画面が表示されるはずだ。
単純なインストールだけなら意外に簡単
今回、ElasticsearchとFessを使用した全文検索サーバーをWindows上に構築したが、大きなトラブルも無く、案外すんなりと動作した。
全文検索サーバーの需要は、今後益々増えるのではないかと思うが、手っ取り早くWindows上に環境を作れれば、テストなどに何かと便利だろう。
参考資料として紹介した「Fessのインストール」の完成度が高いので、そちらを見ればほぼ間違いなく環境構築できると思われる。
参考資料
今回、ElasticsearchとFessを使用した全文検索サーバーをWindows上に構築したが、下記サイトには非常に有用な情報がまとめられていた。
- Fessのインストール
- Fessの公式サイトが提供するインストール手順。Fessのみならず、Elasticsearchの導入についても記載されている。とてもわかりやすい。