導入とは?/ アイフル
[ 59] msearch導入記
[引用サイト] http://www.kiwi-us.com/~mizusawa/penguin/html_hint/msearch.shtml
一般にgrepタイプ(HTMLを直接検索する)よりもインデックス作成タイプ(一度「目次/インデックス」ファイルを作り、これを検索する)の方が高速に検索できる、検索時のサーバの負担が軽いとされています。grepタイプはインデックス作成の手間がかからない点がお手軽でいいですが、検索スピードが遅く、サーバに負荷がかかります。 なお、msearchはフリーソフトですが、営利目的の使用(有償でのレンタルや販売・設置代行等)の場合は作者の許可が必要です。その他、利用条件は作者のホームページをご一読ください。 今回の目玉は、管理機能搭載による導入の容易さをアップさせたことがひとつ。もう一つは複数のインデックスを切り替えて検索できるようになったため、ひとつのCGIで複数の検索エンジンをもてるようになったこと。これに付随して設定ファイルも指定することが可能になったため、一つのCGIで異なる画面デザインで動作可能になりました。 これを変更しないと、他人に好き勝手にインデックスファイルを書き換えられてしまうかもしれません。 もしもインストールやインデックス作成がうまくいかなかったら、「トラブルシューティング」を参照してください。こちらにチェックツールもおいてありますので、お試しください。 インデックスを作ったときに入力した条件は、ブラウザのCookieに入っていますから(デフォルトでは60日間有効。変更可能)、同じ条件をもう一度入力するような不自由はありません(設定日数以上インデックスを作らないとまた入力しなくてはいけませんが)。 インデックスづくりが速いのにも驚き。他のインデックス型だと、この程度(対象ファイル数807程度)でも2〜15分程度かかります。それが1分ほどで済みます。これは管理の手間が大幅にかからないことを意味していますし、同時にサーバの負担もそうとう減っていることと思います。 ただ、解説によるとファイル容量の制限があるサーバや、CGIにファイルを作らせないようなサーバでは運用は面倒になるようです。 or検索のやり方が()で囲むという方法で、他のソフトとは違っていますので注意が必要です。検索式を書くようなユーザーはヘルプを見るでしょうから、このあたりは大丈夫でしょう。 インデックス画面で表示されるインデックス補助ツールは、名前の通り「補助」のためのツールです。通常は使う必要はありません。 msearchの設置がうまくいかないときに使います。サーバや関連ファイルの状態を表示してくれます。msearch掲示板で相談するときに、ここに表示されるデータが必要になるかもしれません。ただし、ここに表示されるデータは、不用意に公共の掲示板に出すとまずい項目もありますので、取り扱いにはご注意。 インデックス名を指定して、インデックスを削除できます。ランキング方法を変更する場合などは、いったん既存のインデックスを削除してからインデックスし直す必要があります。そのような場合に使います。 「インデックス作成フォーム」でインデックスファイルを作成できない場合、この機能を使って空のインデックスをあらかじめ作成します。その後、もう一度インデックスを作成してください。 この機能は、「インデックス作成フォーム」で使われているファイル作成とは違う手法を用いてインデックスファイルを作成しようとします。しかし、この機能を使ってもファイルを作成できないケースもあります。 その場合はローカルマシンであらかじめ空のインデックスファイルを作り、FTPでアップロードするしかありません。パーミッションの設定を忘れないようにしましょう。 「よくあるトラブル/インデックス対象のファイル数が少ないとインデックスできるのに、ファイル数が多くなるとインデックス作成に失敗する」で説明しているように、サーバの制限に引っかかって、一度に大きなインデックスを作れない場合に使います。 サーバの制限に触れないように小さなインデックスをたくさん作り、後でこれらを1つのインデックスに結合する、という手順になります。 「インデックス作成フォーム」でインデックス名を指定しながら、サーバの制限に引っかからないようにディレクトリを小分けしてインデックスを作成します。 できあがった小分けインデックスを、「インデックスの結合」機能を使って一つのインデックスに結合します。 ただし、この方法を使うより、ローカルサーバを立てて、一気にインデックスした方が楽だと思います。「よくあるトラブル」参照のこと。 インデックスファイルの切り替え機能、スキンファイルの切り替え機能の搭載などによって、これらのファイルの名前が変更されています。 サーバの制限などによってインデックスファイルを別の場所に作らなくてはならない場合などは、この制限を受けてしまいます。 インデックスには約15分かかりましたが、これは処理中のファイルを表示させるようにしたため、転送でかなり時間を食われています。後述のようにサーバの処理速度の違いもあり、参考にはなりません。ちなみにこのインデックス作成報告画面のソース保存してみたら、1.1MBありました。ムチャでんがな(^^; ここで注意が一つ。何しろ掲示板の発言ファイルですので、一つ一つのファイルは小さいです。1ファイルの容量は1kもありません。通常のhtmlファイルよりだいぶ小さい規模だという点に注意してください。ファイル数で見るよりインデックスの大きさで見た方がよいと思われます。 これらを利用してブラウザを立ち上げ、自動的にタイピングしてインデックスを作らせるというわけです。僕はMACなのでWindowsでこうしたことが実際に可能なのか不明です。 Xアプリケーション」として保存するといいでしょう。設定によって、小分けインデックスの作成にも使えます。 Matsudaさんに教わりました。「キーワードに「-ほんがらげー」のような絶対に1件もヒットしないキーワードのNOT検索にする」と全件にヒットします。同時にこの方法ではヒットするキーワードがありませんから、強調表示もしません。「全件ヒットさせたいけど、強調表示はいやだ」という場合に有効です。 普段は全ディレクトリを検索させ、ユーザーの好みでAディレクトリ、Bディレクトリの中だけ検索させたい、なんて時に使います。 これを応用したのが「簡単検索」機能で、あらかじめ検索頻度の高いキーワードを複数選択できるようにしたものです。 簡単検索の具体的なスキンの変更方法は、スキンの配布を参照していただくとより参考になるでしょう。 この機能を利用することで、ひとつのCGIで複数の検索エンジンを設置することが可能です。コーナーごとに検索を分けたいときなどに有効でしょう。 なお、複数のインデックスを一度に検索することはできません。一度に検索できるのは1つのインデックスだけです。 さて、実はインデックス名と同名の設定ファイル名がある場合は、これを省略することができます。 表示内容をコピーし、テキストエディタにペーストします。必ず漢字コード/改行コードをコントロールできるテキストエディタを使ってください。 最後に、msearch掲示板で相談するという手があります。もともとバグ情報や次期バージョンの要望などを作者に伝えるための掲示板ですが、設置についても相談に乗ってくれます。作者にサポートしてもらえるというのは心強いものです。 症状を具体的に書くことは大事です。「CGIが動きません。誰か助けて」だけではまったくわかりません。ブラウザでアクセスしてもまったく反応がないのか、動作はするけどエラーがでるとか、エラーがでるならどんなエラーで、エラー番号(通常ブラウザの一番上に表示されます)はなにかとか、状態がわかるように書きましょう。 アドバイスがあったら、アドバイスの何を実行して何を実行しなかったか、実行の結果はどうだったか、キチンと報告するようにしましょう。 結果報告も具体的に書くように心がけてください。「うまくいきませんでした」では、何がどううまくいかなかったのかわかりません。「アドバイスをいただいた○○を試しましたが、結果は××となり、うまくいきませんでした」というふうに具体的に書きましょう。 これを怠ると、状況を正しくつかめないばかりでなく、同様の症状にみまわれた他の人の参考になりません。サポート掲示板はいわば「自分たちで作るFAQ」ですから、自分だけが解決すればいいという態度は捨てて、他の人にも役に立つように掲示板に書き込むように心がけましょう。 ●インデックス対象のファイル数が少ないとインデックスできるのに、ファイル数が多くなるとインデックス作成に失敗する。 CGIには、最大使用メモリ、実行時間、最大同時実行プロセス数などさまざまな制限があります。サーバによってこれらの制限値は異なっています。この制限に引っかかるとCGIは強制的に終了させられます。 インデックス対象ファイル数が少ないとインデックスが作れる場合は、動作自体はしているわけです。ファイル数を多くしたとたんにインデックスできないとなると、なんらかのCGIの制限にひっかかってしまったということです。 こうなるとサーバ上で一気にインデックスを作ることはできません。次のような対処法があります。 インデックスが作れる範囲で小分けしてインデックスを作ります。たとえば、次のようなディレクトリ構造だとします。 なお、ここで配布しているスキンについてのご質問などは、「マニュアルに書いてない掲示板」へお願いします。 以下のスキンで使っている画像は、すべて僕のオリジナルです。ご自由にお使いください。自由に変更できるようにソース画像付きのものもありますから、適当に改変するとよいでしょう。 ver.1.5から搭載された、スキンファイルの指定機能を利用しています。そのため、実際に検索機能を利用することができます。ただし、コンパクトカメラデータベースの検索となりますので、カメラっぽい言葉を入力してください。例として、検索結果画面では「キヤノン」を検索させています。 検索結果1つ1つをテーブルタグで囲ったタイプ。地色を変更することで簡単に雰囲気を変えられます。もっともお手軽に雰囲気を変えられるスキンです。 5.5ファイル)です。サイズを変更したり、色を変えたりしてアレンジして使ってください。サンプルとしてストロベリーやグラファイトに変更できるようにしてあります。 5.5ファイル)に置きます。アイディアはずいぶん前にでていたのに、実現するまでものすごい時間がかかった。理由はペンギンがうまくかけなかったから。この元絵ファイルは足かけ2年もかかっているのだ。心せよ! 結局図鑑見ながら描いたんですけど。 僕はAdobe PageMillというHTMLエディタを使って画面をデザインし、できあがったらテキストエディタで.cfgファイルにコピー&ペーストして貼り付けていく、という方法で作っています。こちらにデザイン中のファイルを置きますので、デザインの雛形ファイルとして使ってください。ソースを表示させるとわかりやすいと思います。 行頭に#があると、その行はコメントとして無視されます。変数も行頭に#が付けられていて、最初はcgi本体内のデフォルト値を使うようになっています。変数を有効にするには、変数行の行頭の「#」を削除します。間違って説明行の「#」まで削除しないでね。バッチリエラーがでます。 説明行があって、次に変数行があるという構成になっていますから、どれが変数行かはすぐにわかると思います。 にします。デフォルトでは「」というファイルに出力されますが、ログファイルの名前を変更したい場合は次の行も変更してやります。 いよいよ画面デザインの変更部分です。デフォルトのまま使う人が多いようですが、せっかく手軽に変更できるようになったので、ぜひ自分らしいデザインに変更して使いましょう。 ここでは検索結果画面のデザインをHTMLで記述します。画面をデザインして埋め込み変数を後ではめ込んでいくという方法でも、デフォルトデザインを元に変更するという方法でも好きなように変更してください。 ver1.3まではログの出力ができませんでしたが、1.4以降は設定の変更だけでログを出力できるようになりました。現在はフォーマットの変更だけでログ出力の内容も変更できますし、出力漢字コードの変更も可能になっています。大変嬉しいです(^_^) 検索された件数をエクセルなどで日付ごとに集計すればすぐに判ります。利用頻度の目安になります。 これが達成できていないと検索CGIの意味がありません。何件ヒットしたのかを見るとだいたい見当がつくでしょう。 「見当違いの内容を検索している(コンパクトカメラのデータしかないのになぜかデジカメを検索したり)」 また、できるだけ検索をしやすく、たどり着きやすくするために、キーワードの一部をメニューから選択できる「簡単検索」機能を付けるアイディアもログを見ていて思いつきました。 検索機能は、ユーザーが必要なページに簡単にたどり着つけることを目的に設置するものだと思います。ちゃんとたどり着けているのか、確認するのがログといえます。 もし「ヒット件数0」という結果が多いようなら、目的のページにたどり着けていないということですから、何らかの対策を施すべきです。でないとせっかくの検索機能が宝の持ち腐れになります。ログを大いに活用しましょう。 以下は、僕の施した改造のメモです。改造を施すときには、オウンリスクでお願いします。すぐに元に戻せるように、コピーしたものを改造するとよいでしょう。 |
アイフルのサイトです。