ぽらろいどの日記

新しい知見を得たり、得られた知見を記録したり共有したりする場を予定しています。

Fess13.13.0 + ElasticSearch7.13.1 でファイルの海をクロールする

Fessという、利用が簡単な検索サーバがある。詳細は以下を参照。

www.slideshare.net

有名なようで、既にFessをWindows環境で構築する方法はWeb上に溢れていた。しかし、Fess13.13.0 + ElasticSearch7.13.1となると、一つの記事だけではうまくいかなかった。

そこで、ひとまずこの環境での構築方法をまとめておきたい。

1. Fess, ElasticSearch をダウンロード

一連のFess, ElasticSearchのインストールの流れについては、本家のページが参照できる。

fess.codelibs.org

この手順に従い、まずはFessとElasticSearchをダウンロードしよう。

なお、「Java がインストールされていない場合は」とあるが、あとでElasticSearchを導入する場合は、そこにJDKが含まれているのでここで導入せずともよい。

むしろ別々にすると、JAVAが複数あるなどと言われて面倒なことになった。既にJavaの環境をお持ちの場合は、この点、ElasticSearch.bat内でJAVA_HOMEを削除するなど別途工夫が必要になるかもしれない。

2. Elasticsearch の設定

プラグインのインストール

続いて手順通りにElasticsearch のプラグインをインストールしていくが、示されているコマンドでは、

> c:\elasticsearch-<version>\bin\elasticsearch-plugin install org.codelibs:elasticsearch-analysis-fess:7.12.0
> c:\elasticsearch-<version>\bin\elasticsearch-plugin install org.codelibs:elasticsearch-analysis-extension:7.12.0
> c:\elasticsearch-<version>\bin\elasticsearch-plugin install org.codelibs:elasticsearch-minhash:7.12.0

と、7.12.0をインストールする形になっている。"これらのプラグインは Elasticsearch のバージョンに依存する"と書いてあるので、ここは7.13.0を指定し直してインストールしておこう。

configsyncのインストール

その後、手順では以下の通りconfigsyncをインストールしていく。ここでも注意が必要だ。

次に elasticsearch-configsync をインストールします。 c:\elasticsearch-<version>\modules\configsync フォルダを作成して、 elasticsearch-configsync-7.12.0.zip をダウンロードして展開します。

c:\elasticsearch-<version>\config\elasticsearch.yml に下記の設定を加えます。

configsync.config_path: c:/elasticsearch-<version>/data/config/

上記、示されている手順では、7.12.0のバージョンをダウンロードすることになっているので、これを7.13.0のバージョンをダウンロードするように変更する。

このzipを展開する際は、ディレクトリの中身(jarファイルなど)を直接configsync下に置く必要があるので注意する。

続いて、elasticsearch.ymlに書く内容だが、configディレクトリは直接elasticsearch-下にあるので、以下のように変更して追加する。

configsync.config_path: c:/elasticsearch-<version>/config/

この辺りは、以下を参照。

qiita.com

3. Fessの設定

Fess.in.batの修正

Fessについても設定の修正が必要だ。コメントアウト(REM)の解除を実施しよう。これも先のQiitaの記事を参照できるが、この記事で片方だけを解除しているのに対して、今回はどちらも解除する。

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=%ES_HOME%/config/

また、Fess.in.bat内のES_HOMEの値も適切ではないようなので、こちらも以下の記事を参照し、次のように変更する。

set ES_HOME="c:/elasticsearch-7.13.1"

taak.biz

Fess.batの修正 - JAVAの設定

さらに、1.でJAVAのインストールを抜いてしまったので、その設定もする必要がある。

本来、FessではマシンにインストールされているJAVAを利用して起動をするが、今回はインストールしていない。

そこで、Fess.batに以下を追加して、ElasticSearchのJDKを利用するように設定しよう(:loopの前、8行目あたりに追加すれば良い)。

SET JAVA_HOME="C:\elasticsearch-7.13.1\jdk"

これで、JAVAの設定も完了だ。起動ができるはずである。

4. 実際に操作してみる

起動をしたら、管理画面を確認していこう。以下の記事が参考になる。

www.tdi.co.jp

ファイルのクロール設定などを設定して、実際に試してみよう。

なお、記事の通りに設定すれば大体は操作していけるかと思うが、ファイルの場合は「パス」は「file:/」から始まり「/」で終わること、またクロール対象のパスは「file:/」から始まり「/.*」で終わることを守らなければ、記事の通りにはならずクロールがうまく行かない。注意しよう。

α. 認証付きでプロキシがうまくいかない場合

もしかすると、2の時点で認証付きプロキシのために、プラグインがうまくインストールできない人がいるかもしれない。

そういうときは、zipファイルをcurlやブラウザからダウンロードし、そこからインストールすれば良いらしい。下記記事参照。

kapibara-sos.net

なお、記事内で"プラグインのオフラインインストール用ファイルのURLはたぶんググれば出てきますが"と書いてあるが、それぞれzipファイルは恐らく以下のリンクで取得できる(7.13.0のバージョン)。

https://repo.maven.apache.org/maven2/org/codelibs/elasticsearch-analysis-fess/7.13.0/elasticsearch-analysis-fess-7.13.0.zip

https://repo.maven.apache.org/maven2/org/codelibs/elasticsearch-analysis-extension/7.13.0/elasticsearch-analysis-extension-7.13.0.zip

https://repo.maven.apache.org/maven2/org/codelibs/elasticsearch-minhash/7.13.0/elasticsearch-minhash-7.13.0.zip

以上