全文検索エンジンFessでゲームの攻略サイトを検索する
業務でFessを使ってみたのでQiitaに記事を載せました。
ここにも載せておきます。
1.艦これWikiを検索したい
艦これwiki http://wikiwiki.jp/kancolle/ のようなゲーム攻略サイト内の検索BOXを使ってみると。
Too many access!
という感じで検索がうまくできないことがあります。これは不便です。何か良い方法はないものか・・・。
2.Fessを導入
ということでFessという全文検索サーバを使ってみました。公式サイトはこちらです。 http://fess.codelibs.org/ja/ Fessは全文検索サーバと言われるもので、指定したWebサイトやファイルシステムを検索してくれます。これで艦これwikiを検索できるようにします。
早速やってみます。環境を作るのは非常に簡単です。 1.公式のサイトからzipファイルを落としてきて展開。 2.fess\fess-server-?.?.?\bin\ の中にあるstartup.batを実行する。 3.http://localhost:8080/fess を開く 4.↓の画面が表示されれば成功
これで準備は整いました!簡単ですね。この時点でまだドキュメントを登録していないので、検索を行っても検索結果が0件になります。
3.Fessを使う
では早速管理ページでドキュメントを登録してみます。 http://localhost:8080/fess/admin ここにアクセスするとユーザ名とパスワードを聞かれます。デフォルトでは共にadminを入力すれば入れます。
最初、設定ウィザードの画面が開いていますが、これは初めてFessを使う人が簡単にクロールの設定ができるように置いてあるものです。とりあえずこれは無視して「クロール」欄の「ウェブ」を開き、「新規作成」をします。
「設定名」は任意です。kankorewikiとしておきました。「URL」にクロールしたいURLを書きます。http://wikiwiki.jp/kancolle/ にします。「最大アクセス数」は10000、「間隔」は1000ミリ秒としておきます。他はデフォルトにします。「作成」をクリックして設定内容を確認して下の「作成」をクリックします。これでウェブクロールの設定が終わりました。 次に「システム」欄の「システム設定」を開きます。
クローラー状態欄の「クロールの開始」をクリックします。これでクローラが動きます。しばらく経つとクローラーの状態が実行中から停止中になります。クロールが完了するまで待ちます。 クローラーが停止したのを確認したら一度ログアウトします。 http://localhost:8080/fess/ を開き検索BOXに「金剛」と入力。
検索結果が出てきます。最上位に表示されているリンクを開くと見事に金剛のページにアクセスできます。
4.クロールの設定
これで目標達成、と言いたいところですが少し問題点がありました。それは先ほどの検索結果の画面で最上位以外のリンクが「コメント/大型艦建造/レシピログ??」となっていています。開いてみるとただのログで有益な情報が載っていません。このようなリンクは邪魔ですから表示したくありませんね。そこで「コメント/〜」をクロール対象外にすることにします。
「クロール」欄の「ウェブ」を開き、先ほど作成したkankorewikiを編集します。
「クロールの対象から除外するURL」に以下を追加してください。
.*%a5%b3%a5%e1%a5%f3%a5%c8.*
.*%A5%B3%A5%E1%A5%F3%A5%C8.*
http://www.tagindex.com/tool/url.html 等のサイトでデコードすれば分かりますが、上記文字列は「コメント」を意味しています。これで「コメント/〜」はクロールされなくなります。 編集を完了し、再度クロールをする前に前回のクロールの情報を削除しておきます。「システム」欄の「インデックス」をクリックします。 インデックス削除から「なし」を「すべて」に変えて削除をクリックします。これでインデックスが削除されました。 では前回と同じようにクロールを実行します。「システム設定」からクロールを開始します。 クロールが停止したのを確認してからログアウトし、検索BOXに「金剛」と入力。