ElasticsearchとFessを使ってWindows10に全文検索サーバーを構築する

Elasticsearch

オープンソースソフトウェア(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に全文検索サーバーを構築する手順の概略は、下記の通り。

  1. Fessのダウンロード
  2. Elasticsearchのダウンロード
  3. Fessのインストール&設定
  4. Elasticsearchのインストール&設定

Fessのダウンロード

Fessは、下記よりfess-13.5.0.zipをダウンロードする。

codelibs/fess
Fess is very powerful and easily deployable Enterprise Search Server. - codelibs/fess

Elasticsearchのダウンロード

Elasticsearchは、下記よりelasticsearch-7.5.1-windows-x86_64.zipをダウンロードする。

Download Elasticsearch Free | Get Started Now | Elastic | Elastic
Download Elasticsearch or the complete Elastic Stack (formerly ELK stack) for free and start searching and analyzing in minutes with Elastic.

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)内にも同じ内容を設定することになる。

全文検索サーバーの起動

全文検索サーバーの起動手順は下記の通り。

  1. Elasticsearchの起動
  2. 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の導入についても記載されている。とてもわかりやすい。
タイトルとURLをコピーしました