Namazu-win32-users-ja(旧)


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

Re: TXT が image と認識されます



From: maeda@xxxxxxxxxxxxxxxxx <maeda@xxxxxxxxxxxxxxxxx> さん曰く
Subject: [namazu-win32-users-ja] TXT が image と認識されます
Message-ID: <0006209615.AA961521777@xxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 20 Jun 2000 10:22:56 +0900

> はじめまして、前田といいます。

こんにちは、白井です。

> 検索対象のTEXTデータ本文行頭に MM  II などの
> 半角大文字があるとイメージデータと認識され
> 「未対応の形式 (image/tiff)無視します」
> とエラーになります。

## まぁ、しかし、これはまた。。。

MagicNumber(*1) というのがありまして、UNIX などでは '拡張子' で
はなく、file の中身を見て file の種別を判定するためにこういうこ
とになります。

(*1) お近くに UNIX マシンがあるなら、通常 '/etc/magic' という
 file を元に判断します。

Namazu では、上記の /etc/magic を使うのではなく MMagic という
Perl module で上記の判定をしています。

# UNIX でも同じ挙動になるので、以下 UNIX でやってしまいますが、

% mknmz ../TEST
2個のファイルがインデックス作成の対象として見つかりました
1/2 - /home/shirai/TEMP/TEMP/TEST/test1.txt 未対応の形式 (image/tiff)無視します
1/1 - /home/shirai/TEMP/TEMP/TEST/test2.txt 未対応の形式 (image/tiff)無視します

となるのですよね。

> 回避する方法はありますでしょうか?

もし、index 対象が全て text/plain (普通の text) なら

% mknmz --media-type='text/plain' ../TEST
2個のファイルがインデックス作成の対象として見つかりました
1/2 - /home/shirai/TEMP/TEMP/TEST/test1.txt [text/plain]
2/2 - /home/shirai/TEMP/TEMP/TEST/test2.txt [text/plain]
インデックスを書き出しています...

のように、media-type を 'text/plain' で拘束するのが一番手っ取り
早いです。

# これができないとすると。。。。良くわかんないけど filter を書く
# のかな?

> また、いまのところMM IIだけですが他にも事例は
> ありますでしょうか?

(私の WinNT4.0 のでは↓ここにあるのですが)
c:/usr/perl/site/lib/File/MMagic.pm をみていただければ、自動判定
する file の一覧がわかります。今回の場合だと、

# TIFF and friends
#                                       TIFF file, big-endian
0       string          MM              image/tiff
#                                       TIFF file, little-endian
0       string          II              image/tiff

に引っかかります。__DATA__ (だいたい 1217行目)以降の

0       string

というのに引っかかる形式だと、前田さんのおっしゃるような現象にな
るでしょう。

(MMagic に関してはこれ以上わかりません ^^;)

--
白井秀行 (mailto:shirai@xxxxxxxxxxxxxxxxxxx)