[Namazu-users-ja 1266] Re: Namazu検索結果のタイトルにファイルのタイトルを表示しないようにする

Tadamasa Teranishi yw3t-trns @ asahi-net.or.jp
2013年 5月 29日 (水) 20:56:23 JST


寺西です。

(2013/05/29 12:14), inquire @ software.sanix.jp wrote:
>> 文書ファイルのタイトルをなぜ表示したくないのか、その理由は
>> 何でしょうか?
...
> 社内でNamazuを運用しているのですが、
> 最近になってOffice2007・2010文書(xlsx/docx/pptx)も
> 対応しようという話になりまして、Namazuにて検索できるのかを検証しておりました。
...
> msofficexml.plとexcel.pl/msword.pl/powerpoint.plの動作の違いだと思い
> 調べていると、excel.pl/msword.pl/powerpoint.plにてDoccatを利用しているときは
> ファイルのタイトルを取得していないようでした。
> (ここで初めて通常であればファイルのタイトルが優先されるのだと知りました)

もうご存じかと思いますが、
優先されるというほどのものでもなくて、タイトルを表示するという
仕様で、タイトルが取得できない場合はファイル名を代用している
だけでした。

Doccat を使った処理ルーチンは永らくメンテされていませんが、
(現在の仕様はわかりませんが)その実装当時は、Doccat では本文しか
取り出せなかったので、タイトルはファイル名を代用していたとか
なのでしょう。

> Namazuを利用している人はずっと「ファイル名が検索結果のタイトル」で
> 慣れ親しんでいる為、出来れば同じ挙動にしたいと思い調査するに至りました。

実際は、ファイル名がタイトルの代わりに出力されるというのは、
例外的な場合ということだったわけですが。

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

> ずっとNamazuを利用しておりましたが、こちらの仕様は恥ずかしながら
> 今回初めて知りました。
> 本来であればファイル名がおまけのような扱いなのですね。

はい。

> 普通に利用していればこのようなことをすることは無いのでしょうね。
> こちらが特殊な使い方をしている状態だとは認識いたしました。

ファイル名を表示したいというニーズは、あまりないと思うので、
ま、そうなりますね。URL も表示していますのでわざわざファイル
名を出す必要は少なく、そちらよりは文書のタイトル出す方が
より親切なので...。
# 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} に書き換える。

これで検索すると、タイトルのところにファイル名が表示される
ようになるはずです。(未確認なので、あくまでもたぶんですが)

フィールド fname 分、インデックスは大きくなりますが、許容
範囲でしょう。
おまけですが、フィールド検索で、ファイル名検索が可能となります。
また、新たなフィールド fname を使うので、他のところに影響を
与えることはありません。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns @ asahi-net.or.jp
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E


Namazu-users-ja メーリングリストの案内