山川です。
お世話になります。

引き続きの返信とアドバイスをいただきありがとうございます。
教えていただいた方法の実験もしておりましたので
返信が遅くなりました。


> もうご存じかと思いますが、
> 優先されるというほどのものでもなくて、タイトルを表示するという
> 仕様で、タイトルが取得できない場合はファイル名を代用している
> だけでした。
>
> Doccat を使った処理ルーチンは永らくメンテされていませんが、
> (現在の仕様はわかりませんが)その実装当時は、Doccat では本文しか
> 取り出せなかったので、タイトルはファイル名を代用していたとか
> なのでしょう。

きっと、Doccatを利用されているユーザーさんは少ないのでしょうね。
この情報が今後Doccatを利用する方への参考情報になれば幸いです。

Doccatは最近Office2007・2010にも対応しているそうなので、
時間があれば勉強もかねてDoccatでも出来るかどうかを模索してみようと思います。


> 実際は、ファイル名がタイトルの代わりに出力されるというのは、
> 例外的な場合ということだったわけですが。
>
> それはともかく、「検索結果のタイトルにファイルのタイトルを表示しない
> ようにする」ということがしたいわけではなくて、
> 「検索結果のタイトルの代わりにファイル名を表示したい」ということなの
> ですね。
> それだと話が少々違ってくるので。

はい、その通りでございます。
伝え方が悪く申し訳ありませんでした。


> もしファイル名を表示したいというのなら、フィルタの改造は必要に
> なりますが、次のようにするのが良いかと思います。
>
> $fileds->{'title'} に gfilter::filename_to_title でファイル名を
> 入れているかと思いますが、これとは別のフィールドにファイル名を
> いれるようにします。必要とするすべてのフィルタで。
>
> 例えば未使用の fname というフィールドを使うならこんな感じ。
> (filename は使用済みなので避けること)
>
> $fileds->{'fname'} = gfilter::filename_to_title($cfile, $weighted_str);
>
> mknmzrc の $SEARCH_FIELD に fname を追加して、インデックス
> を作成する。
> NMZ.field.fname ができていればまずOK
>
> インデックスの NMZ.{body, head, foot, result, tips}* を
> 適当なディレクトリにコピーして、.namazurc の Template に
> そのディレクトリを設定する。
>
> そのディレクトリにコピーした NMZ.result.* の中の ${title} と
> いうところを ${fname} に書き換える。
>
> これで検索すると、タイトルのところにファイル名が表示される
> ようになるはずです。(未確認なので、あくまでもたぶんですが)

教えていただいたとおりにやってみました。

ひとまず excel.pl のみですが、最終的に NMZ.field.fname 内に
ファイル名が書き込まれ、 NMZ.result.* の ${fname} へ
見事に反映されたところまで確認できました。

ありがとうございます。

フィルタを変更することばかり考えておりましたので、
このような方法を思いつきませんでした。大変助かります。

他の文書もこの調子でやってみようと思います。


> フィールド fname 分、インデックスは大きくなりますが、許容
> 範囲でしょう。
> おまけですが、フィールド検索で、ファイル名検索が可能となります。
> また、新たなフィールド fname を使うので、他のところに影響を
> 与えることはありません。

確かに、+fname:XXXX で検索が出来ました。
検索出来る条件がまた一つ増えて便利になります。

よくよく過去ログを見てみたらこの方法が載っており
気付かずにお恥ずかしい限りです。


本当にありがとうございます。

_______________________________________________
Namazu-users-ja mailing list
Namazu-users-ja@namazu.org
http://www.namazu.org/cgi-bin/mailman/listinfo/namazu-users-ja

メールによる返信