全文検索システム『Fess』をWindowsファイルサーバで構築した際にハマったこと

2017年9月14日

FessをWindowsのファイルサーバの検索エンジンとして稼働させようとしてハマったので記録として残しておきます。

Fessのインストールと設定の仕方は簡単なのですが、今回ハマった場所がその設定部分なので記述します。
※あらかじめJavaをインストールしておいてください。Fessのバージョンによっては古いJavaに対応していない場合もあります。現在はVersion 8 Update 121が最新です。
なお、すでに古いJavaが入っていた場合はFessが古いJavaだと動かない場合がありますのでアンインストールした方が良いです。既存環境に影響が無ければですけど。。。
Javaをインストールしたら環境変数も設定しておいてください。

Fessのインストール(Windows)

1.Fessをダウンロードします。
現在の最新バージョンは10.3.2です。Windowsの場合はzipファイルをダウンロードしてください。

2.fess-10.3.2.zipを展開します。
インストールするディスクドライブにそのまま展開してください。なお、クロールの際にディスク容量を多大に消費する可能性があるので、空き容量に気を付けてください。

3.Windowsのサービスとして登録し、起動させます。

> cd (Fessの展開先)\bin
> service.bat install

4.サービスを起動

5.Fessの管理画面にアクセスします。
デフォルトではlocalhostとなりますが、IPアドレスでもホスト名でも動きます。ポートは8080なので競合に気を付けてください。

http://localhost:8080/admin/
or
http://(IPアドレス):8080/admin/
or
http://(ホスト名):8080/admin/

6.設定(その1)
システムメニューからウィザードを選択し、名前・クロールパスを入力してください。

▼名前
任意の名前

▼クロールパス
ローカルディスクの場合
file://(フォルダ名)/
共有フォルダの場合
smb://(サーバ名)/(共有フォルダ)/

7.設定(その2)
クローラメニューからファイルシステムを選択し、設定(その1)で作成した内容を編集します。
クロールや検索対象から除外する設定を追加します。
今回ここにハマりました!

検索を行う対象がWindowsのファイルサーバで、作成されているフォルダの多くは日本語で記述されてます。
これをそのまま除外する設定を行っても認識されません。
ですので、以下の設定を追加します。

#DISABLE_URL_ENCODE
smb://(サーバ名)/(共有フォルダ)/.*

除外するフォルダ名と『#DISABLE_URL_ENCODE』はセットで記述してください。
除外するフォルダ名が複数ある場合は、必ずセットで!

#DISABLE_URL_ENCODE
smb://(サーバ名)/(共有フォルダ1)/.*
#DISABLE_URL_ENCODE
smb://(サーバ名)/(共有フォルダ2)/.*
#DISABLE_URL_ENCODE
smb://(サーバ名)/(共有フォルダ3)/.*

8.設定(その3)
ファイルサーバにアクセス権限を付けている場合が多いと思いますので、その設定を行います。

▼ホスト名
(ファイルサーバのホスト名)

▼スキーム
Samba

▼ユーザ名
(ファイルサーバにアクセスするユーザ名)

▼パスワード
(ファイルサーバにアクセスするユーザのパスワード)

▼パラメータ
ドメインに所属している場合
domain=(ドメイン名)

9.クローラーを動かしてみる。
クローラーの動作はFessの展開先のlogsディレクトリに『fess-crawler.log』があるので、動作を確認。

 

Fessのマニュアルなどを見ても、『#DISABLE_URL_ENCODE』なんて記述が見つけられず、ネットをさまよった結果何とか回避策を見つけることができました。
噂では現在の最新バージョン(Fess-10.3.2)で修正されているらしいですが、実際はダメでしたので、日本語(2バイト文字)フォルダを利用する際は『#DISABLE_URL_ENCODE』を使うようにしてください。

 

end