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)
% (株)富士通オアシス開発 開発部第一開発課