Windows環境でFessを使用する方法のメモ

Fessは検索エンジンにApache Solr (http://lucene.apache.org/solr/) を利用している全文検索サーバー。

Fessのダウンロード・インストール

http://sourceforge.jp/projects/fess/から最新版のzipファイル(fess-server-x.x.x.zip)をダウンロードして解凍。
Javaがインストールされていない場合はJDKもインストール。
詳細はhttp://fess.codelibs.org/ja/setup.html

Fessの起動

解凍したフォルダのbinフォルダを開き、startup.batをダブルクリック。
32bit環境の場合は、binフォルダのsetenv.batの
-XX:+UseCompressedOops
を削除してから起動。
最後に「Server startup」が表示されるとセットアップ完了。セットアップ完了後にhttp://localhost:8080/fess/にアクセスすると検索画面が表示される。

管理画面へのログイン

http://localhost:8080/fess/adminにアクセスすると管理画面のログイン画面が表示される。
初期値はユーザー名admin/パスワードadmin。
confフォルダのtomcat-user.xmlを書き換えることで変更可能。
<user username="admin" password="admin" roles="fess"/>

solrサーバーのユーザー名・パスワードを変更する場合はtomcat-user.xmlの
<user username="solradmin" password="solradmin" roles="solr"/>
の部分に加え、
webapps/fess/WEB-INF/classesフォルダ内のsolrlib.diconとfess_suggest.dicon
<arg>"solradmin"</arg><!-- Username -->
<arg>"solradmin"</arg><!-- Password -->

solr/core1/conf/フォルダとsolr/core1-suggest/conf/フォルダのsolrconfig.xml
<username>solradmin</username>
<password>solradmin</password>
を書き換え。

tomcatのmanager-scriptのユーザー名・パスワードを変更する場合はtomcat-user.xmlの
<user username="manager" password="manager" roles="manager-script"/>
の部分に加え、
webapps/fess/WEB-INF/classesフォルダ内のapp.dicon
<property name="username">"manager"</property>
<property name="password">"manager"</property>
を書き換え。

クロール設定

ウェブ上(http:、https:)、ファイルシステム(file:)、データソース等のクロールが可能。

ウェブ上のドキュメントをクロールする場合
参照:http://fess.codelibs.org/ja/9.3/admin/webCrawlingConfig-guide.html
  • クロールのウェブを開き、「新規作成」
  • 設定名:任意の名称を入力
  • URL:検索対象の起点となるURL(複数指定可能)
    例)
    http://localhost/
  • URLフィルタリング:クロール対象、検索対象とする/対象から除外するURLパターンを正規表現で指定
    例)ローカルホスト以下のみを検索
    http://localhost/.*
    (「クロール対象とするURL」欄に入力)

    例)ローカルホスト以下の.html、.php、.txtのみを検索
    http://localhost(?=/).*(/|\.(html|php|txt))$
    (「クロール対象とするURL」欄に入力)

クロールのスケジュール

参照:http://fess.codelibs.org/ja/9.3/admin/scheduledJob-guide.html

システムの項目のジョブを開き、Crawlerのスケジュールで設定。左から、秒 分 時 日 月 曜日 年(省略可)
*=ワイルドカード/?=月日と曜日で使用。特定の値を指定しない

毎日0時に実行
0 0 0 * * ?

30分おきに実行
0 0/30 * * * ?

毎週月曜日の6時30分と18時30分に実行
0 30 6,18 * * MON

Fessの停止

binフォルダ内のshutdown.batをダブルクリック。

Apache2.2との連携

TomcatへのアクセスをApache経由で行うようにする方法。
まずはfessのconfフォルダ内のserver.xmlを開き以下の部分をコメントアウトして、8080ポートを閉じる。
   <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="UTF-8" />

以下の部分がコメントになっていたら外す。
   <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" />

続いて、各ファイルの「localhost:8080」の部分を変更(ポート番号を外す)

fessのwebapps/fess/WEB-INF/classesフォルダ内のapp.dicon
<property name="managerUrl">"http://localhost/manager/text/"</property>

同フォルダ内のsolrlib.dicon
<!-- Solr Server URL -->
<arg>"http://localhost/solr/core1"</arg>

同フォルダ内のfess_suggest.dicon
<!-- Solr Server URL -->
<arg>"http://localhost/solr/core1-suggest"</arg>

fessのsolr/core1/conf/フォルダのsolrconfig.xml
      <solrServer class="org.codelibs.solr.lib.server.SolrLibHttpSolrServer">
        <arg>http://localhost/solr/core1-suggest</arg>

fessのsolr/core1-suggest/conf/フォルダのsolrconfig.xml
      <solrServer class="org.codelibs.solr.lib.server.SolrLibHttpSolrServer">
        <arg>http://localhost/solr/core1-suggest</arg>

次にApache2.2のconf/extraフォルダ内にhttpd-proxy.confを作成して以下を記述。
<Location /fess/>
ProxyPass ajp://localhost:8009/fess/
</Location>

<Location /solr/>
ProxyPass ajp://localhost:8009/solr/
</Location>

<Location /manager/>
ProxyPass ajp://localhost:8009/manager/
</Location>

Apache2.2のconfフォルダのhttpd.confを開き、作成したhttpd-proxy.confファイルを読み込ませる。
Include conf/extra/httpd-proxy.conf

mod_proxyとmod_proxy_ajpがコメントになっていたら外す。
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

最後にApacheとFessを再起動。