タイトル通り。
Redmine使ってると全文検索をしたくなる。もちろん添付ファイルの中身も含めて。チケットとかWikiとかとか。
で、今回はチケットは検索対象には入れずにやる。その代り、ナレッジベースとDMSFとWikiの検索をやる。
Redmine単体ではちょっときつそうなので、プラグインを作るかどうにかするしかない。色々見てたら、FESSがよさそうなので、これを使ってやってみる。Fessが何かはインターネットにおまかせ。
まず、準備。必要なものはFess本体とJDK。JDKはてきとーにオラクルから落としてきてインストール。Fessは「Fess」でググれば配布元のページ出てくるからそこから落とす。
そしたら、下の感じでJavaのPath通しと環境変数を設定。あー、環境はWindows7っす。
JAVA_HOMEっていうシステム変数が必要らしい。ElasticSearchっていう、検索エンジンが使うっぽ。っていうかこのエンジン使って色々やりたくなるよね。。。今度いじってみよう。
そしたら、FessのZipを展開して好きなところに置いておく。
で、Fessの「bin\fess.bat」で起動する。そしたらプロンプト上がって動き出すので、ブラウザで「http://localhost:8080」につなげる。つなぐと下の感じ。
タイトルはFessのロゴが出ると思うけど、ちょっと変えてるのでモザイク。。。
とりあえず、これで動きました。なんだけど、ポートが8080で割とアレ。ポート変える。
ポート変えるの見てたら、公式のドキュメントちょっと間違ってて少しはまった。とゆーか10.2あたりから、起動の仕方全然変えてるっぽいのね。ドキュメント間に合ってなさそう。えらいこっちゃ。
ポート変えるときは「fess.in.bat」を修正。下感じでやる。
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.port=8080 ↑のポート番号を変える。
あと、はまったのがElasticSearchのポート番号が全然わかんなかった。いちをデフォルトだと9200っぽいんだけど9200だとつながらない。
「netstat /oan」でListenしてるポート確認したら、「9201」っぽい。なる。。。
なんで、知りたいかとゆーと、クロールした結果をチャラにしたい場合、Fess側の管理メニューにそれらしきモノがないので、ElasticSearch側のインデックスを消す必要があるので。
ただ、試しに全消しやってみたら、Fessのダッシュボード動かなくなった。なんか設定でも入ってたのかしら。 要調査。
まーとりあえず、これでFessが動くようになったので、あとはクロールの設定をしていくけど、それはまた今度。眠くなってまいりましたとさ。。。
2016/12/18追記
試した中でちょっと危険な部分があったので、ちゃんと書く前に追記。
RedmineみたいなMVC構成のアプリをクロールする場合、アクションが実行される可能性があるので、 クロールの対象から除外するURLは色々やっておかないとマジで危険。
Redmine丸ごとクロールとかすると、DMSFのファイル丸ごと消えるから注意した方が吉。