namazu-ml(avocado)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Resumed? (Re: Namazu ML will be in maintenancesoon)



眞柄@富士通オアシス開発と申します。
先週からMLに参加しています。

週末に過去メールをざっと読んでみました。
興味のあったメールに浦島フォローします。

>>> Fri, 13 Mar 1998 10:16:56 +0900 の刻に
>>> furukawa@xxxxxxxxxxxxxxxx(Rei FURUKAWA) 氏曰く
> fml は、新規のコマンドを作るような改造が、割合簡単にできるようです。
> そこで、
> 
> # namazu 愛知大学
> 
> とかいうメールを出すと、'愛知大学' を検索して結果を返すようなコマンド
> があると、とても便利だと思います。

これにトライしたことがありますが、コマンドと同じ行に日本語の文字列を
書くと、illegal characterだったかでfmlが必ずエラーを吐きます。
そこで、iamのように、コマンドと検索文字列を別々に指定するような方法で
検索コマンドを追加しています。
  namazu-1.1.2, FreeBSD-2.2.6-RELEASE, fml-2.1C-snapshot16,
  perl-5.004_4, jcode.pl 2.6
で動かしています。

cfの追加部分はこうなっています。

-------- cf::LOCAL_CONFIG --------
# zenbun kensaku
sub ProcSearch
{
    local($proc, *Fld, *e, *misc) = @_;
    local($r, $encount, $keyword);
    require 'jcode.pl';
    &Log("Search ");
    foreach (split(/\n/, $e{'Body'})) {
	if ($encount) {
	    $r = '';
	    $keyword = $_;
	    &Log("keyword = $keyword");
	    &jcode'convert(*keyword, 'euc'); # ';
	    open(NAMAZU, "/home/gama/etc/fml/spool/takoika/namazu -n 100 /home/gama/lib/namazu/index/takoika/ \'$keyword\'|")
		|| do { &Log($!); next GivenCommands;};
	    while ($line = <NAMAZU>) {
		$r .= $line;
	    }
	    close(NAMAZU);
	    $r = "Search Result : $keyword\n$r";
	    &jcode'convert(*r, 'jis', 'euc'); # ';
	    &Mesg(*e, "$r\n");
	    $encount = 0;
	    next;
	}
	/\#\s*search/i && ($encount++, next);
    }
    'LAST';
}
%LocalProcedure = (
		   'search', 'ProcSearch',
		   );
-------- cf::LOCAL_CONFIG --------

helpはこんな感じです。

----つかいかた----------------------------
# search  過去メールの全文検索を行なう
          コマンドに続けて指定された検索式に従って
          過去メールを全文検索した結果を返す。
          なお、「# search」コマンドの後に書いた他の
          コマンドはすべて無視されます。
          例:
               To: takoika-ctl@xxxxxxxxxxxxxxxxxxxxxxx
               
               # guide
               # search
               八丈 & 富士
               # search
               ダッチオーブン 牛タン
               # objective
          この例では「# guide」は実行されて案内の文書が
          取り寄せられますが、「# objective」は実行され
          ません。二つの「# search」は両方とも実行され、
          一通のメールで結果が送られます。検索式には
          演算子 & | ( ) が使えます。
----つかいかた----------------------------

-- 
眞柄 康弘 (Magara Yasuhiro)
% (株)富士通オアシス開発 開発部第一開発課