全文検索エンジンFessをdocker compose で試す

Geek

自端末内のドキュメント管理どうしていますか。

Googleデスクトップ検索がサービス終了してからというもの、自端末のドキュメント管理が課題。l基本的にMacを使っているので、Documentsのディレクトリに全てのドキュメントを入れて、少し前まではAlfred、最近はSpotlightを利用しているのだけれども、いまいち使い勝手が悪い。

そんな中、OSSの全文検索エンジンのFessというものがあるということを知ったので、試してみました。結論から言うと、満足できる結果は得られていない。アプリとしての性能は良いのだと思うのだけれども、日本語ファイルや日本語フォルダがクロール対象にならないことが課題(逆に言うとこれがクリアになれば、使えるのではないかな、という体感)

ただし、クロール対象のフォルダをSambaとしてマウントさせるとクロール対象となった。(とはいえ、Dockerのホスト端末にSambaを起動させてクロールするのはちょっと・・・)

以下、メモ。

docker composeでFessをインストールする

 

% git clone git@github.com:codelibs/docker-fess.git fess                      
Cloning into 'fess'...
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 503 (delta 0), reused 2 (delta 0), pack-reused 499
Receiving objects: 100% (503/503), 65.89 KiB | 247.00 KiB/s, done.
Resolving deltas: 100% (220/220), done.

% cd fess/compose                                                               

クローンしたら、composeフィアルを編集して、ローカルのドキュメントフォルダをwww配下にマウント


volumes:
- ~/Documents:/var/www

Fessにログインして、クロールポイントを作成

Fessはデフォルト8080ポートで稼働しているので、

にアクセスして、クロール場所を設定する。まずは試しに以下のように設定した。

クロール先:file:///var/www/
クロール対象ファイル:.*\.xls?$
.*\.xlsx?$
.*\.doc?$
.*\.docx?$
.*\.ppt?$
.*\.pptx?$
.*\.txt?$
.*\.pdf?$

このようにすると、一旦、マウントしたローカルディレクトリ内で、マルチバイトが含まれないファイルがクロール対象となりElasticSeachで検索可能となる。ファイルの中に日本語が入っている場合、その文字列も検索対象となるが、ファイル名、あるいはパス名に日本語が含まれていると対象とならない。

一方、ローカルにマウントせず、ホスト側にSambaを起動し、同様に設定すると、日本語がパス、ファイルに含まれていたとしても検索対象となる。とはいえ、そのためにSambaを起動しておくのもちょっと・・・。

もう少し試して、日本語文字列が入っていてもクロールできるようになれば、改めて更新しようと思う。