Namazu-devel-ja(旧)


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

Re: 日付順ソートに関して



From: Tadamasa Teranishi <yw3t-trns@xxxxxxxxxxxxxxx> さん曰く
Subject: [namazu-devel-ja] Re: 日付順ソートに関して
Message-ID: <3EEC832F.FD16ADBA@xxxxxxxxxxxxxxx>
Date: Sun, 15 Jun 2003 23:31:11 +0900

> > "フィールド date" って、NMZ.field.date, NMZ.field.date.i のこと
> > でしょうか?現状でも、$conf::SEARCH_FIELD に "date" が含まれてい
> > たら(デフォルトでは含まれている)、初めから mailnews.pl ってそう
> > なっていませんか?
> 
> うぅ。なっていました。余計な修正でした。
> 
> しかし、$conf::SEARCH_FIELD に "date" を含めなかった時にまずい
> ですね。ユーザーに削除されてしまうこともありえるので、その時でも
> 有効になっていなければいけませんね。

ですね。SEARCH_FIELD の default 値は

$SEARCH_FIELD = "message-id|subject|from|date|uri|newsgroups|to|summary|size";

ですが、他のもので必須なものってどうなっているのかしら?

# ごめんなさい、調べる能力と調べている余力がありません。

もう一点 NMZ.field.xxx を積極的に使うときに気になるのは、
$MAX_FIELD_LENGTH です。もし、こいつを極端に小さな値にしてあると、
Date: フィールドが途中でちょん切れている可能性がありますので、
mknmz のときに "Date:" は $MAX_FIELD_LENGTH の値によらず行末まで
有効にする、とか例外処理をしないとならないかも、です。

> > > 忘れの場合、結果で表示される日付と、ソートにもちいる日付が異な
> > > るため利用者の期待した結果にはソートされません。
> > 
> > 『日付のソートを厳密にする』を目的にされるのでしたら、
> 
> 決して厳密にするつもりではなくて、mailutime なしに使える程度を
> 考えています。

はい、だけど mailutime を使用する/使用しないの選択はユーザが出来
ますが、namazu に相当するものを組み込んじゃうとユーザの選択でど
うのこうのではなくなりますから、可能な限り厳密に対応したほうが良
いと思います。

> もちろん厳密にするのが望ましいのでしょうが、まずいところは誰かが
> 直してくれるだろうという甘い期待もあったりします。

へい。

# 私は不良 commiter。というかもう全然ついていけていません ^^;;;

> > > ・注意) timezone は考慮していません。timezone の異なるファイルが
> > >  混在した場合は正しく処理できません。
> > 
> > 是非是非 timezone も見てくださいませ。+hhmm, -hhmm の表記法以外
> > は、RFC822 にのっている、
> > 
> > ("UT"  .  0),  ("GMT" .  0), ("EST" . -5),  ("EDT" . -4),
> > ("CST" . -6),  ("CDT" . -5), ("MST" . -7),  ("MDT" . -6),
> > ("PST" . -8),  ("PDT" . -7)
> > 
> > だけサポートすれば大丈夫だし、個人的には、timezone を見ない
> 
> これ以外の場合はどうするのがよろしいのでしょう。

timezone の表記で許されているのは、今も昔も

zone            =       (( "+" / "-" ) 4DIGIT) / obs-zone
obs-zone        =       "UT" / "GMT" /          ; Universal Time
                                                ; North American UT
                                                ; offsets
                        "EST" / "EDT" /         ; Eastern:  - 5/ - 4
                        "CST" / "CDT" /         ; Central:  - 6/ - 5
                        "MST" / "MDT" /         ; Mountain: - 7/ - 6
                        "PST" / "PDT" /         ; Pacific:  - 8/ - 7

                        %d65-73 /               ; Military zones - "A"
                        %d75-90 /               ; through "I" and "K"
                        %d97-105 /              ; through "Z", both
                        %d107-122               ; upper and lower case

だけですよ。って、Military zone は厳密に実装したとしても対応しな
くても良いと思いますが :-)

> # JST とか....というのは冗談ですが。

RFC2822 的には JST という timezone はないので、コンピュータが火
を吐けば良いですね。(本当はファイルのタイムスタンプを使う、ですかな)

> > Date: のソートなら、ファイルのタイムスタンプを使う方がマシ、と感
> > じられます。
> 
> mailutime で困る方はそういらっしゃらないようですし、ケースバイ
> ケースだとは思います。
> もっとも、いろいろな timezone を扱う方にはそうですよね。

そうですね。ほうっておいてもメールは世界中から来ますからね。

> > ですが、RFC2822 の Date: は
> > date-time       =       [ day-of-week "," ] date FWS time [CFWS]
> >                         ~~~~~~~~~~~~~~~~~~~
> > time-of-day     =       hour ":" minute [ ":" second ]
> 
> これも mailutime 程度の対応ということです。
> しかし、きちんと対応するのは簡単ですので、修正しましょう。

お願いします。

> > です。day-of-week や ":second" がないと、return が -1 になっちゃ
> > うような気がしますが、sscanf の挙動が良くわからないので、"%*3s,
> > " がどうなるのかわかりません。
> 
> ちなみに
> day-of-week がないと return が 0 になり、":second" がないと
> return が 5 になります。

# すいません、自分で実験しないといけなかったんですが、申し訳ない
# です。

> 真面目にやると、曜日と日付があっているのかとかチェックしないと
> いけないのかもしれませんが、Namazu 全般でそんな厳しいチェックは
> していないのでそれはパスしていいでしょう。

"パス一" に賛成です。というか曜日は最初から気にしなければよいだ
けなので :-)

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