homeホームHTMLに役立つヒントmsearch導入記> msearch掲示板で過去にあった事例

msearch掲示板で過去にあった事例

 このページでは、msearchの作者、まっとさんの運営する「msearch掲示板」にあった相談・報告のうち、役立ちそうなものをリストしてみました。番号をクリックするとその番号の発言にジャンプします。

 CGIを改造する方法などもありますが、その場合はくれぐれもオウンリスクでお願いします。また、改造例のCGIのバージョンにも注意しましょう。

 本家掲示板にリンクしていますが(まっとさんから許可済み)、このページは水沢・penguin-19・和彦が作成しています。このスレッドも追加してとか、このページの内容についてはメールか「マニュアルに書いてない掲示板」へお願いします。

 内容の要約もpenguin-19がやっていますので、要約が不適切、間違いなどの問題があれば、それはpenguin-19の責任です。

 チェックツール「checkk_ms.cgi」を使うと原因追及が簡単です。「msearch導入記」の「トラブルシューティング」「よくあるトラブル(トラブル別)」「msearchのインデックス対象ディレクトリ指定」も参照してください。

※文字コード/改行コード(EUC/LF)やパーミッションなどCGIの基本については「CGI設置入門」を参照のこと。

 (最終リスト日:2006/7/11)

 本家「msearch掲示板」の調子が悪く、古いスレッドの表示ができない場合があります。そこで、任意のページを表示するように、下にリンクを置きます。表示したいページを選択して「表示」ボタンを押してください。

目次

インデックス時・エラー編 ●インデックス時・運用編 

検索時・エラー編 ●検索時・運用編 ●プロバイダ・webサーバ別 ●その他 

■インデックス時 エラー編 ▲ページトップ

・(Windows環境で)スクリプトを確認しようと、「perl C:\xxx\genindex.pl -s」したが、「Can't locate ./jcode.pl in @INC (@INC contains: C:/xxxxxxxxxxxx .)」というエラーが出る

→Windowsではコマンドプロンプトで呼び出すと、.pl/.cgiからの相対パスではなく、カレントディレクトリ(コマンドを実行した位置)からの相対パスになる。 2539番

・インデックスの内容が文字化けする

→機種依存文字が使ってあるとそういうことが起こるケースがあるようです。 2201番

・FFFTPを使ってアップロードしていて、文字化けなどが発生する

→FFFTPでファイルをアップロードするときは必ず、「ホストの漢字コード:無変換」で転送すること 387番/416番/1000番

・インデックスCGIにアクセスしても画面が表示されない(画面が真っ白)

→漢字コード・改行コードが間違っています。 339番/186番/167番

→漢字コード・改行コードが正しい場合、サーバが出力コードを制限している可能性があります。 1472番

・「対象ディレクトリの指定」と「対象ディレクトリのURL」の指定がよく判らない。

→ 847番

→ 「msearchのインデックス対象ディレクトリ指定」で詳しく解説しています。

・順調にインデックスが進むが、「■■■インデックスを保存しています」の後、「ファイルオープンエラー」が表示され、検索できない。

→原因はインデックスファイル/default.idx、またはCGIの入っているディレクトリに書き込み権限がないため。パーミッションを確認してください。 616番/856番/2284番

→「checkk_ms.cgi」を使うとパーミッションチェックもやってくれます。

・インデックスの作成が始まるが、「インデックス作成は完了しました」まで表示されず、途中で反応がなくなる。

→指定の間違いに起因するケース594番/サーバ制限に起因するケース813番

 このケースでは、原因がこれと特定できていません。CGIがcoreをはいて途中で死んでいることもあるようです。もしCGIのあるディレクトリにcoreがあったら、削除してください。
 その上で空のインデックスファイルをアップロードしてください。
 メモリ制限に引っかかっている可能性もあるので、最初は大量のファイルをインデックスせず、少ないファイルでインデックスしてみてください。

→この原因はタイムアウトエラーの疑いが浮上中。1118番

・インデックスの作成が始まるが、「■■■インデックス化するファイルを収集しています」「■■■完了(0ファイル)」となり、結局1件もインデックスできない。

→インデックス時の「対象ディレクトリ」の指定を間違っています。840番

→「msearchのインデックス対象ディレクトリ指定」で解説しています。

→インデックス時の「対象ファイルの拡張子※4」の指定を間違っています。1550番

・インデックス対象ファイル数が少ないと正常にインデックスできるが、ファイル数が多くなるとインデックスに失敗する。

→サーバのCGI動作制限に引っかかっています。ローカルサーバでインデックスを作ってアップロードするか、サーバ上で小分けしてインデックスを作り、これを合体させるしかありません。 701番/小分けインデックスを素早く作る方法863番

・shファイルでインデックスを作成する場合、「./genindex.pl: permission denied」と表示されてしまう。

→出力文字コードに制限のあるサーバのようです。 574番

■インデックス時 運用編 ▲ページトップ

・非対象ファイルを正規表現で指定したい

→一つの例ですが、こちらに。 2048番 

できれば正規表現の基礎的な文法を知っておくといいです。

・設定も正しく、インデックスも作成されるのに、検索できない単語がある。

→コメント部の認識に不具合が残っており、HTMLのコメント部以外の部分をインデックスから削除してしまうことがある。対策としては、特にコメントを閉じるときにきちんと「-->」と記述すること。「--->」などではきちんと認識できない。(ver.1.52) 1930番 

・1.4xの設定ファイル(config.dat)は名前を変えて1.5x(default.cfg)で使えるか?

→環境によってはうまくいくこともあるが、default.cfgを使うのが無難。このスレッドでは文字化けが生じたという報告あり。 1805番 

・shファイルが動作しないため、perlスクリプトを使ってインデックスを自動更新したい 

→genindex.plを元に自動更新用perlスクリプトを作ります。 1769番 

・cronで自動更新させるとインデックスの作成場所がずれてしまう 

→autogenindex.shに1行加えます。 1395番/1431番

・cronで自動更新させるとインデックスの上書きができない 

→パーミッションを見直してください。 1376番

・PHPで出力される外部ファイルがインデックスできない 

→やってできないことはい。が、けっこう力量が必要そう。 1247番

・インデックスしたくないファイルの名前に全角文字を入れておき、それをはじくようにしたい

→改造が必要です。 1126番

・wikiなどで拡張子のないファイルを検索したい

→改造が必要です。 1181番

・全角半角の区別なく「!」を検索したい。 を含むキーワードを検索したい。

→改造が必要です。 1163番

・インデックスの作成場所を変更したい。

→不完全な改造(この改造をすると「msearch用インデックス補助ツール 」の機能が使えなくなる)方法はこちら。 1141番

・txtファイルを生成する掲示板の中を検索できるようにしたい

→「Subject:」と「==(中略)==」で挟まれた部分をタイトルとして認識させ、「xxxx.cgi?」のような最後に「/」のつかない「対象ディレクトリのURL」の指定を可能にする改造法 889番

・インデックス作成時の条件を保存しておきたい。

→下の項目と同じく、GETメソッドのURLを作るという方法と、インデックス作成用のHTMLをローカルに作る方法を紹介。 2197番

・リンクから一発でインデックスを更新する。小分けインデックスもこの技で簡単に生成可能

→携帯電話からの更新も可能。くりやましげるさんのアイディア。 517番/863番

・unicode/UTF-8などのファイルの検索は?

→現行では対応していません。JIS、SJIS、EUCのみです。 395番/936番/996番

→毛流麦花さんがunicode対応版msearchを配布されています。 996番 「Unicode版msearch

・Iso-8859(Latin1)ファイルの検索は?

→ちょっとの改造で対応可能です。 221番

・他のサーバー/サイトの内容を検索したい

→基本的にはできません。ローカルサーバなどに同じファイルがあれば可能です。 545番/833番/989番

■検索時 エラー編 ▲ページトップ

・CGIからの検索は文字化けしないが、HTMLの検索窓から検索すると文字化けする。

→HTMLの検索formに「<input type="hidden" name="hint" value="漢字コード判定用文字列">」が抜けている。 2414番 

・msearch.cgiにアクセスすると、インデックス件数0、「インデックスページ数/0」「インデックス最終更新日時 1970年01月01日 09時00分00秒」となってしまう。

→指定したインデックスファイルが存在しません。 1977番 

・HTMLの検索窓から検索すると検索結果が0件となる。そのまま検索ボタンを押すと次は正常に検索できる。

→HTML検索窓のタグに間違いがある。あるいは指定が足りていません。 1671番 

・検索結果ページが真っ白になることがある

→titleタグが複数あると、そのファイルが検索対象にヒットした場合、検索ページが白くなるそうです。検索対象ファイルのtitleタグを確認してください。 1536番 

・全角一文字で文字化けすることがある。

→SJIS/EUC共通文字1文字の場合、コード判定ができないことが原因です。 974番 

・ver.1.5でヒット数が急に減った

→バグがある模様で調査中。対処法はver.1.4xのインデックスを使用すること。 820番 

→コメントタグの中に--があるとおかしくなる模様。 1066番/1260番 

・「ロックに失敗しました」と表示される。(1.46)

→ver.1.5でバグフィックス。と思ったら…。1.51以降では大丈夫のはず。 392番/743番/933番 

・「ロックに失敗しました」と表示され、ログファイルができない

→ディレクトリのパーミッションをチェックしてください。 1216番

・検索結果のURLが実際のファイルのURLと異なる。

→インデックス時の指定方法が間違っています。 556番/545番/847番

→「msearchのインデックス対象ディレクトリ指定」で解説しています。

・「<>」を検索すると「不正なクエリーです」と表示される。

→「<>」を直接検索できません。「<」は「&lt;」に、「>」は「&gt;」にコーディングされているはずですから、「<4>」を検索するなら「&lt;4&gt;」とします。(ver.1.5からは<>を自動的にエンコードして検索するようになった) 658番

・携帯で文字化けする

→携帯はSJIS出力が主流のためeuc出力のmsearchを改造する必要がある。それでもすべての携帯で正常に表示することはできません。 172番 

→ver.1.46からはSJIS出力がサポートされています。後はスキンファイルの変更で対応可能と思われますが、携帯サービス会社によってSJISでなくてはいけないところとEUCでもOKのところがあり、切り分けが必要かも。

→毛流麦花さんが携帯からのアクセスに対応させる方法を紹介されています。「msearchのケータイ対応化改造

・携帯用に設定を作る時のセキュリティ

→セキュリティの心配はする必要ないと思われる。 1814番 

・「times not implemented」というエラーが表示される。

→times関数が利用できないperlです。解決法は「msearch導入記」を参照のこと。 61番

■検索時 運用編 ▲ページトップ

・検索時間をもっと高精度に表示させたい

→改造が必要。Time::HiResモジュールを使う。 2561番

・<a href="〜">図書</a>館となっていると「図書館」でヒットしない。

→これはそういう仕様です。改造すればできなくはないですが、弊害がでる恐れあり。 2216番

・<a name="〜">タグにヒットさせたい。

→nameタグを検索するのは、msearchの構造上難しいため、この機能を搭載する予定はないそうです。 1498番

・msearch.cgiの検索欄から検索すると大丈夫だが、HTMLフォームから検索すると文字化けする。

→フォームに文字コード判定用のタグが抜けています。 2051番

・キーワード欄が空だった場合、別のページに飛ぶか何しないようにしたい。

→CGIに手を入れるのではなく、JAVAscriptで実現可能。 1972番

・スキンファイルやインデックスの指定方法がわからない。

→インデックスとスキンファイルは個別に指定できます。指定方法は「msearch」の「高度な設定」に書かれています。 1570番/1595番/

・英語スキンを1.5xで使いたい。

→英語スキンはver.1.4x用ですが、1.5xでも使えます。 1450番 

・海外サーバの時差調整

→.cfgファイルの設定で調節できます。 1462番 

・デフォルトでタイトル検索にしたい

→HTMLを埋め込む方式と、JAVAscriptを使う方法があります。 1439番 

・リンククリックで検索したい

→普通にリンクを書いて、msearchにURIエンコードしたキーワードを渡します。 1418番 

・「and」「or」検索のやり方がわからない

→msearchにアクセスすると検索式の解説がでてきます。 1397番 

・検索結果を別フレームに表示させたい

→formタグにtargetを指定します。 1390番 

・検索ログが生成されない

→デフォルトではログ出力「しない」設定になっています。 2215番 

・ログのフォーマット変更・解析のしかた

→.cfgファイルで設定します。 2181番 

・ログをCSV形式で出力したい

→.cfgファイルで設定します。 1187番 

・msearch.logの大きさは?

→logに大きさ制限はありません。どんどん大きくなります。適当なところで削除するかリネームしましょう。 1153番 

・オリジナルの検索CGIで検索エンジンを選択できるようにしたい

→gakinchoさんオリジナルのCGIソースが公開されていますが、著作権について記載がありませんのでご使用の場合は配慮を忘れずに。 1094番 

・「Yomi-Search」から検索を引き継ぎたい

→「Yomi-Search」の改造が必要です。 1035番 

・検索対象ファイルの最終更新日時を表示させたい

→CGIの改造が必要になります。(1.5の改造例あり。) 956番 

・キーワードを別のCGIに引き渡したい

→.cfgにformを埋め込むか、CGIを改造してURLエンコードして引き渡します。 912番 

・特定の文字を検索すると検索結果が文字化けする

→毛流麦花さんがこれを解決する方法を公開しています。 問題419番/解決901番 

・msearchの負荷はどのくらい?

→これくらいだそうです。 902番/1491番

→msearch導入記もご参照下さい。

・msearchの限界はどのくらい?

→ウ〜ム。どーなんでしょー。 874番

→こんなご報告もありました。 1836番

・ある金額以上/以下のものを拾うなど、データベース的に使いたい。

→基本的にはできません。が、似たようなことは工夫次第で可能に。 347番/853番 

・表示されないキーワードを検索させたい/同音異義語を検索させたい 

→いろんなアイディアのまとめ 1577番/

→コメントタグのネスト処理ができない(ver.1.46まで/651番。1.5で解消)という仕様を逆手に取り、コメントタグの内にタグを埋め込んで、そこに同音異義語を記述する。 837番

→seamusさんCSSを使った手法がCGIに手を加える必要がなくてスマート。 612番/1012番/1577番

→選択方式で入力させる「簡単検索」を使う。 612番/

・表示はされるが検索されない文章を埋め込みたい 

→「架空のタグを埋め込む」という手法とCGIの改造で実現可能。毛流麦花さんのアイディア。 860番

→ver.1.51以降は架空のタグ「<msearch>〜</msearch>」で囲まれた部分はインデックスから除くことができるようになっています。

・検索キーワード前後の文字数を変更したい

→ver.1.5以降、設定ファイルで指定できるようになりました。 803番 

・ソートに関する要望 マッチしたキーワード数

→スコアリング機能がなぜないのか、理由はこのスレッドを見てください。 790番 

・検索時に新しい順・古い順・タイトル順など表示順を変更したい。

→インデックスを複数用意し、検索時にインデックスを切り替えることで実現できますが、容量を食います。 2517番 

・該当HPへジャンプしたあともキーワードをハイライト表示してほしい

→msearchの改造と、別のCGIの作成が必要になります。具体的なスクリプトはなし。この機能を持った検索エンジンの紹介有り。 740番 

・検索結果のリンクでターゲット指定をしたい。

→config.datの修正で可能。 716番

・PDFを検索したい

→結論を言うとできません。PDFを何らかの方法でテキスト、あるいはHTMLに変換する必要があります。 682番/2491番 

・コメントが検索されてしまう

→通常はコメント内は検索されませんが、実はネスト制限があります 651番(ver.1.5でネスト制限はなくなった860番

・検索結果で「タイトルなし」と表示されてしまう。

→<title>タグがない場合はこうなります。 634番

・altタグなど本文以外の文字列を引っかけたい。

→ver.1.5からはaltタグ対応になりました。しかし、このスレッドでseamusさんが考案された方法は「画面に出したくないキーワードを埋め込む」ことが可能です。大変参考になります。 612番/1012番 

・検索結果画面で、ヒットしたキーワード部分をすべて強調表示させたい

→結果を言うとできません。 552番

・検索結果が0件だった場合、特別な画面を表示させたい。

→デフォルトではできません。CGIの改造方法がこちらに 526番

→「改造例」でも改造方法を紹介しています。

・検索時に選択だけでor検索を実行できるようにしたい。

→CGIの改造が必要です。 480番

→少し違いますが、「m_andor.cgi」も参照してください。CGIの改造不要のJAVAscript版もあります。

・タイトルのor検索ができない

→ver1.46現在では仕様です。 323番 

・特定のディレクトリ内だけ検索するオプションをつけたい

→「u:」オプションで可能。 240番

・検索結果を異なる拡張子で表示・リンクさせたい

→CGIの改造が必要です。 519番

■プロバイダ/webサーバ別 ▲ページトップ

・infoseekの無料アカウント 

→無料アカウントの場合、メモリまたはCPU占有制限がある模様。 1275番 

・AAA! CAFE 

→CGIのリンクにコツが。 1332番 

・Biglobe 

→ファイルオープン制限またはメモリ制限があるもよう。 692番/1046

→使用しているサーバによって制限事項が異なる。 692番

→CGI(ファイル)が見つからないとなる場合、HTMLからmsearch.cgiへの呼び出しリンクが間違っている。 1671番

・@nifty

→設置可能。 561番/827番/2381番

・plala

→設置できるようですが、詳細不明。 362番

・wakwak

→ファイルオープン制限またはメモリ制限があるもよう。 306番

・IIS

→SJIS/CR+LFでないと動かないことがある。また、IISの設定いかんでmsearchの改造が必要かも。 646番/1401番

・トクトク

→サーバ制限がある模様。小分けインデックスなどの工夫が必要。 965番

・「CGIスクリプト内にUNIXコマンドを呼び出すプログラムは、当サーバがWindowsのため、機能いたしません」というサーバ

→たぶん大丈夫。しかし、サーバソフトがIISの場合は上記のような制限があるかもしれない。 868番

・ローカルサーバを立てるのにお勧めの解説ページは?

→こちらです。 712番

→MACの場合はOS Xが必要になります。「Mac OS X Darwin Tips」などを参照してください。

→このスレッドでWindowsマシンでサーバを立てる方法が解説されています。 1230番

■その他 ▲ページトップ

・TeraPadでスクリプトを開くと「Null 文字を含むファイルです。〜」という警告がでる。

→TeraPadでperlスクリプトを開くと、この警告がでることがあるようです。他のテキストエディタを使ってください(最新版のTeraPadではこの問題は出ないらしい)。 2454番

・.cfg/.idxファイルなどをブラウザから見えなくしたい

→msearchというよりサーバ管理の問題ですが、.htaccessで可能です。なお、.cfgはmsearchの設定ですし、.idxは(すでに公開されている)ホームページのインデックスファイルです。いずれも公開しても差し支えはないファイルであると思います。問題があるとすれば、ログファイルにIPアドレスを出力するように設定してある場合、ログファイルを見られるのはいやだ、というくらいでしょう。これはログファイルの出力先を公開ディレクトリ(wwwやhtml)の上位にしてしまえばブラウザからは見られません。 2452番

・携帯電話/ケータイからのアクセスに対応したい。

→毛流麦花さんが改造方法を紹介しています。また、同じく毛流麦花さんのUnicode版msearchは携帯からのアクセスに対応しています。 1986番

・MacPerlで動かしたい。

→改造でなんとか対応はできます。 1995番

→mamacさんが改造方法をこちらで紹介しています。「mamacのサーバーへようこそ

・解凍したファイルがWordなどのファイルになっている。

→パソコン上の拡張子とアプリケーションの関連づけと、サーバ上の関連づけは異なります。同じファイルでもパソコン上とサーバ上では振る舞いが異なります。かまわずそのまま編集してください。 1881番/1464番

・全文検索エンジンの役割/ヒットする数が少ない。

→キーワードがどのファイルにあるのか探すのが全文検索エンジンの役割です。そのファイルの中にいくつキーワードがあるのか探すわけではありません。 1481番

・著作権表示について

→CGIスクリプト内部に書かれた著作権表示を削除してはいけませんが、.cfg(スキンファイル)の書き換えはOKです(自分のホームページに設置する場合)。設置代行業者の場合は書き換え不可。 1445番/1583番/ 

・UNIXサーバ以外のしばり 

→1.5x以降では「インデックス補助ツール」でUNIXのシェルを直接コントロールしているため、サーバがUNIX以外の場合、動作しない可能性がある。 1206番

・Pukiwikiでmsearchを利用したい 

→緒方さんが改造方法をご紹介されています。 1181番/1191番 

→indexing.plの改造だけですます方法はこちら。 2463番 

・MACで解凍できない 

→StuffIt Expanderはlz7形式の圧縮ファイルを解凍できません。MacLHAで解凍してください。 1419番/1474番

・MACでうまくダウンロードできない。 

→Macintosh版IEでダウンロードするとダウンロードCGIの名前「lime.cgi」になりますが、中味は.lzhファイルです。そのままMacLHAで解凍してください。 991番/

・Windowsで解凍できない 

→解凍にはLhasaなどlh7形式を扱えるものを使ってください。 1830番/2175番 

・.cgiや.plを開くと文字化けしている。 

→漢字コード/改行コードを理解するテキストエディタを使って、EUC/LFを指定して開く。 1407番/
→漢字コード/改行コードはここら辺を参照。「CGI設置入門

・titleタグやh1タグによる「重み付け」機能は? 

→そーゆー機能はありません 1220番

・同じサーバで2つ以上のサイトを運営している場合、インデックスを分けることは可能か 

→できるそうです。が、注意あり。 1224番


homeホームHTMLに役立つヒントmsearch導入記 > msearch掲示板で過去にあった事例