はじめに
全文検索システムFessで、特定ファイルのみを拡張子で指定する方法です。
前準備
挙動をテストするときは、システム→全般→クローラーの「最終更新日の確認」を無効にする必要があります。この設定が有効だと、1度クロールしたファイルが更新されない限りクロールされないので、テストしても何もクロールされないので。僕は、何度もテストして何もクロールされない、なぜだろう、と設定を見直して、やっと気づきました。
ダメだった方法
公式マニュアルによると、ファイルシステムのクロール設定の部分で「クロール対象とするパス」を正規表現で指定すれば良さそうに見えます。
試しに、拡張子pptxのみをクロール対象とするため、
(?i).*\.pptx$
と設定してみました。ここで、(?i)は大文字と小文字を区別しない(PPTXにもマッチする)、$は末尾であることを示す正規表現です。
テスト用のフォルダにtest.pptx、test.docx、test.msgの3つがある状態にしておき、この設定でクローリングしてみます。成功すれば、test.pptxのみがクロールされるはずです。しかし、すべてのファイルがクロールされてしまいました。
上手く行った方法
設定バターンを変えて試した結果、「クロール対象から除外するパス」を設定すれば制御できました。正規表現の内容は同じで、「クロール対象から除外するパス」に
(?i).*\.pptx$
を記載して、他はブランクにしておくと、test.pptx以外のファイルがクロールされました。
複数の拡張子を設定することもできます。正規表現をつなげて1行にすることもできますが、
(?i).*\.pptx$
(?i).*\.msg$
のように改行しながら1つずつ設定した方が分かりやすいように思います。なお、この設定では、パワーポイントのファイル(拡張子pptx)とメールファイル(拡張子msg)がクロールの対象外になります。
