トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BugTrack-plugin/84

ページの作成や編集にはユーザ登録が必要です。

msearchを利用した検索

  • 投稿者: Waver
  • カテゴリ: 新規
  • 優先度: 普通
  • 状態: 提案
  • 日時: 2003年11月27日 11時28分30秒

 内容

BBS-雑談掲示板/49 の投稿を読んで作りました。初めて作ったプラグインです。紅猫 さんの修正を取り込んであります。

 使い方

  • まず、msearchをダウンロードして下さい。
  • BBS-雑談掲示板/49を参考に、msearch.cgi の修正を行ってください。
  • 必要に応じて、default.cfg, genindex.cgiも修正して下さい。
  • msearchをインストールして下さい。場所はどこでも良いと思いますが、僕は /wiki/mearch[1] というフォルダを作り、そこへ入れました。以降、/wiki/msearch に msearch をインストールした物として説明を行います。別の場所にインストールした場合には、適宜読み替えてください。
  • msearch3.lzh(622)をダウンロードして、次の修正を行ってください。

MsearchForm.pmの42行目

my $msearchurl = 'http://www.xxxx.com/wiki/msearch/msearch.cgi';

MsearchHandler.pmの42行目

my $msearchurl = 'http://www.xxxx.com/wiki/msearch/msearch.cgi';

の部分を、msearchをインストールしたパスに変更して下さい。

GenIndex.pmの25行目〜36行目までをご利用の環境に併せて修正して下さい。『パラメータ指定例』で示した物と同じものが入ります。

my $genindexurl = 'http://www.xxxx.com/wiki/msearch/genindex.cgi?';
$genindexurl .= 'index=&';
$genindexurl .= 'includedir=../data&';
$genindexurl .= 'includeurl=http://www.xxxx.com/wiki/&';
$genindexurl .= 'suffix=.wiki&';
$genindexurl .= 'excludedir=&';
$genindexurl .= 'excludefile=&';
$genindexurl .= 'excludekey=&';
$genindexurl .= 'sort=MODIFY-DESC&';
$genindexurl .= 'rescuealt=1&';   #1=alt文字の追加をする
$genindexurl .= 'conf=password&'; #password
$genindexurl .= 'debug=0';        #0=off
  • MsearchHandler.pmの48行目
#  my $indexpath   = './msearch/default.idx';

のコメント[2]を外すと、上部メニューの『インデックス検索』を選択した時に、『インデックス更新日時』を表示します。

  • msearchプラグインをインストールし、利用できる様にして下さい。
  • 適当なページに、msearch プラグインを指定して下さい。
  • 記事の追加/修正を行うと、インデックスの再生成が行われます。

 オプション

通常は、

{{msearch}}

だけで構いません。MENUへ入れたい時には、

{{msearch v}}

とします。検索窓のサイズは、eオプションで指定できます。eオプションを省略するとe20が指定された事になります。

{{msearch e10}}

表示件数は、nオプションで指定できます。nオプションを省略するとn20が指定された事になります。

 {{msearch n10}}

v,e,nの各オプションは、半角カンマで区切って任意の順序で指定することができます。

 パラメータ指定例

msearchのインデックスは、msearchプラグインで生成することができます。msearchプラグインの設定する時、またmsearchオリジナルのgenindex.cgiでインデックスを生成する時に指定すべきパラメータは以下の通りです。なお、設定内容例は msearch を /wiki/mearchへインストールした事を想定しています。

項目名 設定内容例 GenIndexの項目名 備考
インデックス名 (空欄) index= 通常は、default.idxで十分なので、空欄で良いと思います。
対象ディレクトリ ../data/ includedir= msearch.cgiから見た、dataフォルダの位置を指定します。
対象ディレクトリのURL http://www.xxxx.com/wiki/ includeurl= FSWikiの実行ディレクトリを指定すれば良い様です。
対象ファイルの拡張子 .wiki suffix=
非対象ディレクトリ (空欄) excludedir= 対象ファイルの拡張子に .wiki 以外の物も指定する場合、必要になるかも知れません。
非対象ファイル (空欄) excludefile=
非対象キーワード (空欄) excludekey= 検索対象としたくない語句がある場合には指定します。
ランキング方法 最終更新日時-降順 sort= 表示順序を指定します。好きなパターンを指定して下さい。
alt文字の追加 追加する rescuealt= どちらでも動作に違いは無いハズです。
パスワード (指定したパスワード) conf=

を指定すれば、FSWiki 上でのインデックスが出来上がります。

 コメント

  • Install.pmのadd_menuとadd_handlerが間違っていたので、新しい版をアップしました。 - Waver (2003年11月27日 16時49分22秒)
  • 今日の夜にでも作ろうかと思っていたら既に。さっそく使わせて頂きます。 - kuwa (2003年11月27日 22時39分39秒)
  • 使ってみました。ちょっと悩みましたが、genindex.cgi実行時の対象ディレクトリはdataディレクトリ、対象ファイルの拡張子は.wikiを指定すればよいのですね。 - 紅猫 (2003年11月28日 00時49分10秒)
  • genindex.cgiでのパラメータを紹介して置いた方が良かったですかね?(雑談の方に、解説が追加されましたが。) 解説を追加しておきます。 - Waver (2003年11月28日 09時07分23秒)
  • 雑談にも書いたのですが、あるタイミング(save_afterとか)で、別のCGIをコールする。と言うことはできる物ですかね? - Waver (2003年11月28日 09時26分29秒)
  • GenIndex.pm貼ってみました GenIndex.pm(418) - 紅猫 (2003年11月28日 11時52分42秒)
  • Install.pmに $wiki->add_hook("save_after","plugin::msearch::GenIndex"); を追加して、添付のファイルのhookの中を適当に修正して同じディレクトリに置けば保存時にインデックスの再作成できます。 - 紅猫 (2003年11月28日 11時59分51秒)
  • logディレクトリにgenindex.logという名前で結果のログ(CGIのレスポンスそのまま)を出力してます。 - 紅猫 (2003年11月28日 12時01分54秒)
  • 紅猫さんの、GenIndex.pmを取り込んだ、msearch3.lzhをアップしました。少々、修正箇所は多いけれど、これでmsearchによる全文サーチに対応できますね。 - Waver (2003年11月28日 13時29分28秒)
  • はじめまして tutenze といいます。Fswiki上でmsearchを利用した検索 [msearch3]を使わせていただいております。重宝しておりますが、以下の件ご教授をいただけませんでしょうか。百名で検索すると1 http://www1.tutenze.mydns.jp/tutenze/public_html/cgi-bin/wiki3_5_6/data/%CD%BD%C4%EA%C9%BD%2F2005%2D1%2D13.wiki2 http://www1.tutenze.mydns.jp/tutenze/public_html/cgi-bin/wiki3_5_6/data/memo.wiki 1のように後半部分のわけのわからない文字が表示される場合と2のようにテキストファイル名が判然とわかる場合とが表示されますその際、1の場合はurlをクリックしても検索元文書にはたどり着かないで、「ページが見つかりません」とのエラーメッセージが表示されます。2の場合は検索元の文書が開きます。どうしてでしょうか設定が間違っているのでしょうか。それともFswikiの仕様なのでしょうかいご教授をお願いします。できましたら、1の場合も2と同様検索元文書にたどり着けるにはどうしたらよいのかご教授ねがえませんでしょうか。よろしくお願いします。By tutenze - tutenze (2005年01月29日 23時56分10秒)
  • 何かコメントが欲しいな。解決できなければその旨のコメントでも結構です。だまでしょうか? - 上原善哲 (2005年08月02日 00時44分54秒)
  • これは... 今 リンク先が見れない様なので何とも言いにくいのですが  プラグインやFSwikiの問題では無い気がするな  msearchの"インデックス" もしくは、"インデックス作成" や "検索" に関するトラブルだと思いますけど どうでしょ? - とうりすがり (2005年08月02日 09時06分40秒)
  • Unicode版msearchで上手く設置出来た方いますか? 元々別のディレクトリー検索するのに入れてたんだが 上手く設置出来るなら嬉しい かな と - kitta (2005年08月02日 10時46分22秒)
  • いろいろ頑張ったのですがインデックスファイルが無いとのエラーが表示されます.Wikiページが300ページ以上あって検索が苦しいので,これが動くととても嬉しいのですが…. - katsu03 (2005年08月02日 17時57分31秒)
  • はじめまして koba-chan といいます。有用なFreeStyle Wikiのご提供ありがとうございます。早速ですがUnicode版msearchをプラグインのmseach3.lzhを用いて設置しました。fswikiフォルダ内のdataフォルダ及びfswiki外のフォルダを対象にインデックス化し、selectタグでインデックスの選択が可能です。対象ファイルの文字コードはfswikiのデータではEUC、fswiki外のデータはUTD-8とEUCが混在しています。katsu03のインデックスファイルが無いエラーはdefault.idxが存在しない、或いはインデックスフォルダーを生成する場所の属性が「書きこみ・実行」をオフにしているのが原因かもしれません。現在の問題は半角スペース混じりファイル名が検索されてもUnicode版mseachではURLエンコードされる点、ヒットしたfswikiのデータがテキスト形式で表示されてしまう点ですが、検索そのものはfswikiからできると判断して良いと思います。 - koba-chan (2005年08月14日 11時30分33秒)
  • katsu03さん、ごめんなさい。敬称を書くのを忘れてしまいました。 - koba-chan (2005年08月14日 11時32分27秒)
  • アドバイスありがとうございます.パーミッションを確認することにします.> koba-chanさん - katsu03 (2005年08月15日 18時29分04秒)
  • koba-chanさん Unicode版で設置出来ましたか。素晴らしい... 私も試してみたんです 色々とやってみたんですがUnicode版だとindex作る時に何故か落ちちゃうんですよねぇ しかも .wiki だけが出来ない。 ま、これはUnicode版の問題だと思うんでここで話題にするのもどうかと思うんですが... んで 試しに普通?のmsearchで設置してみるとあっさり出来るんだよなぁ 何でだろ? - kitta (2005年08月16日 10時51分23秒)
  • 『しかも .wiki だけが出来ない』とはどういう意味でしょうか。genindex.cgiの設定画面で、対象ディレクトリは /home/wikipedia/public_html/hogehoge 、対象ディレクトリの URLはhttp://www.bbhp.net/~wikipedia/hogehoge/ 、対象ファイルの拡張子は、.wiki の指定方法です。msearch は指定したファイルとほぼ同じ大きさのインデックスを作る仕様らしく検索対象ファイルが膨大ですとインデックス作成にも時間がかかると思います。一度に全部のファイルをインデックスせずに徐々に増やしていくか、インデックスファイルの合成等で何回かの手順で挑戦してみては如何でしょうか。 - koba-chan (2005年08月17日 15時50分04秒)
  • そのとうりに実行してるんだけどなぁ 他のhtmlやらtxtだけなら(2434ページ)問題なくインデックスを作るんです 対象ファイルを.wikiにし新規に別名のインデックスを作ろうとすると(264ページ)逐一モードだろうと何だろうと途中で止まってしまうんです。 - kitta (2005年08月17日 15時55分08秒)
  • kittaさん、こんにちは。再確認をしてみました。『対象ファイルの拡張子』欄に、".wik"i ではなくドット " . " を付けずに、wiki と4文字入れて、インデックス作業を行なってみてください。うまくいかない場合は、dafault.idx を作成してください。 - koba-chan (2005年08月18日 03時24分47秒)
  • やってみました 最初から拡張子の指定に"."は付けてませんです 駄目ですね dafault.idxは出来てますし "逐一モード"で途中まで書き込まれてます。 デバックモードで必ず止まる所を見てみたり 一部を小wikiを作り分割してみたりしたんだけど何故か最後まで出来ません。 よく分からないです。とりあえず"普通のmsearch"と"Unicode版msearch" 両方設置し 普通のmsearchはFswiki内検索用 Unicode版はその他ファイル検索用として運用してみます。 - kitta (2005年08月18日 09時07分46秒)
  • んー。できる場合とできない場合があるときには問題を切り分けてみるのが良いかもしれません。幸いにしてとりあえずはインデックスを作り、必ず最後まで行かずに停止するわけですから、何となくの想像ですが特定ファイルに Unicode版msearch をハングアップさせるような文字列や、スクリプト内のサブルーチンを停止させるような記号が含まれているような気がします。私ならインデックスしたいファイルを別のフォルダーに適当な数ずつコピーか移動を繰り返し、ファイル数上限による異常、インデックスファイル作製時ののファイルサイズの上限、サーバー負荷によるタイムアップの時間制限、何個目で起きるのか、等々をインデックスしながら原因ファイルを特定します。有用なソフト同士の連携なのでうまく解決すると良いですね。 - koba-chan (2005年08月18日 13時45分21秒)
お名前: コメント:
  • [1]FSwikiを /wiki と言うフォルダへインストールした場合。
  • [2]行頭にある、#
AcroRd32.exe GenIndex.pm msearch.lzh msearch2.lzh msearch3.lzh

最終更新時間:2005年09月25日 00時45分49秒