2008年1月 1日

MovableType用 namazu2文書フィルタ

namazuのindexを作り直したのは良いけど、検索結果がどうにも気に入らない。

例えば本Blogの先頭に書いてある「お客様」で検索すると、全ページがヒットする(^^;
しかも、検索結果の要約文も下記のように全部Blog先頭部分になる。
plain-namazu-20080101.jpg
これでは元気が出ない。

MovableType用の文書フィルタを探したけど見つけ切れなかったので、
pipermail用のfilterをもとに作成した。ありがとうございます。>菊地様。

ただし、自分のtemplateが出力しているindividual archive file用なので、
いろんな人のBlogに対応させるにはいじらないとダメかも。
 #MovableTypeが出力するHTMLは、MHonArcなどと異なり、
 #HTMLを解釈させるためのtagが埋め込まれていないので
 #検索対象範囲を絞るのに妥協が必要だと思います。

そのフィルタを通してmknmzしたindexで「お客様」を検索した結果が下記。
filtered-namazu-20080101.jpg

所望の検索結果と要約出力になったようだ(^^)。

ちなみに作成したMovableType用フィルタはこちら→mt3.pl

どこに置けば良いかは

mknmz -C
で教えてくれるFILTERDIR:と示されたところ。

そこにmt3.plを置いて、
再び mknmz -C を実行して、「対応メディアタイプ」に

  text/html; x-type=mt3: mt3.pl
と表示されればOK。

実際のindex作成時には、indexを格納させるディレクトリ上で

mknmz -t 'text/html; x-type=mt3' -s -z /hoge/archives/
とかやればいけるはず。

もっと良いfilterの実装がありましたら、教えてください。

ちなみに、皆さんのBlogにあわせてmt3.plをいじるとしたら、

my $MT3_MESSAGE_FILE = '\d{6}\.html';
で指定しているインデックス作成対象ファイル名の部分と、
    $$contref =~ s/<form method="post".*/</body></html>/s;
$$contref =~ s/<body>.*<div class="blogbody">/<body>/s;
で指定している対象範囲の目印部分だけだと思います。

投稿者 his : 2008年1月 1日 23:06
このエントリーのトラックバックURL: http://hoop.euqset.org/blog/mt-tb2006.cgi/68258
コメント

新しいpipermail.plでは、Dateも取り出すようになっているな。
参考にして日付ソートもきちんとできるようにするか。

#出来るのはいつになるかな(^^;

Posted by: his : 2008年1月 2日 01:17

BlogのソースHTMLをじっと見ていたんだけど、
<head>内のrdf:Description部を解析して、
dc:titleを$fields->{'subject'}に
dc:subjectを$fields->{'newsgroups'}に
dc:descriptionを$fields->{'summary'}に
dc:dateを $fields->{'date'}に
変換して押し込めばいい感じかな。

誰か先に実装して(^^;

Posted by: his : 2008年1月 2日 01:50
コメントする









名前、アドレスを登録しますか?





画像の中に見える文字を入力してください。