namazu-ml(avocado)


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

pnamazu.cgi/98.03.16



古川です。

perl 版 namazu.cgi の本日のバージョンです。

# 1. おそらくバグがあります。
# 2. 私の身のまわりの、ごく限られたデータしかテストしていません。
# 3. kakasi を呼んでいないので、複合語の処理は完全ではありません。
# 4. エラー処理の類は、充実していません。
# 5. cgi として呼ぶことしか考えていません。
# 6. slog は残りません。

# 履歴 (新規 = '+', 修正 = '!')
# 98.03.16
#   + 検索式が使えるようになった
#   + 圧縮したデータベースが使えるようになった
#   ! 全体的にコード見直し

>> On Tue, 10 Mar 1998 13:06:21 +0900, Rei FURUKAWA <furukawa@xxxxxxxxxxxxxxxx> said:
  >>> namazu ! 愛知大学
  >>>はどう扱われるでしょうか。
  >>> ( namazu ! 愛知 ) 大学
  >>> namazu ! ( 愛知 大学 )

については、

  >     (2) 日本語の分解時に
  >             '( 愛知 大学 )'
  >         と、カッコをつけてしまう。

としています。高林さんの方で仕様を決めたら、それに合わせます。



>> On Sat, 7 Mar 1998 05:09:21 +0900, Masami HIRATA <a0292060@xxxxxxxxxxxxx> said:
  > NMZ.*を直接アップする場合は、NMZ.lockをアップした後に数秒待
  > った方が安全みたいですね。コピー専用のmknmzを用意した方が本
  > 格的かも知れませんが、一時的にでもインデックスの容量が2倍に
  > なるのはきつい人も多いと思うので、今のままでも充分だと思いま
  > す。

確かに、プロバイダでは、ディスク容量に制限があったり、容量あたりいくら、
という価格設定になっている場合もあるようですね。

とすると、インデクスファイルは小さい方がいいですね。

perl 版では「遅くてもいいから動かしたい」というポリシーですので、gzip
で圧縮した状態で、実行時に zcat で全部読み込んでしまうことができるよう
にしてみました。

# さすがに CGI の使用メモリ量に応じて課金するプロバイダは無いでしょう

ただし、

    小さなインデクスは、圧縮しても、それほど嬉しくない
    大きなインデクスは、圧縮すると、読み込みにとんでもない時間がかかる

ので、御自分のインデクスファイルの大きさをみて、どちらにするか決めて下
さい。また、当然ですが、zcat が使える必要があります。



  > 1、検索文字列に”の事”を指定した場合、

原因は分かっていませんが、いつのまにか直っているといいなあ…



というわけで、スクリプトの中の '$IntType' と '$Zcat' をテケトーに設定
して使って下さい。

-- 

                                        ヤマハ(株)ピアノプレーヤ設計課
                                                              古川 令
                                             furukawa@xxxxxxxxxxxxxxxx

------------------------------ ここから ------------------------------
begin 755 pnamazu.cgi.gz
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
M*G ((D![R^0"SWGI@C#DK.4H>R0??5X2@xxxxxx(XSH\^$N6EY%8=[)KFFF'
M&U@xxxx+\..>[>1>[.T.OH7[XES67L\*,T>UHN4ZR\8\NSSP%B2(XXQU4'U@
MV1'; !6#2X_<.KAQ<#U+#0!A!8 .A4ML:!UL-#\O,K!4-A;Z4@T-T8K$K'JL
M#"E/K,;H_HRDS((LYE][44+M9F7M;8_PWPXYF%5J"E.G'$?H34M^TLC$(6"V
M,QAGNL:W!:PCQ<[HC8_L!D9>.Y-(F48!Z07;"H)^D:"XC 8![&Q$3D#L%0D*
MII6M6PQ5N>77K'-JPTAG>POK9PTB;V#0V[9ET]W)@8BY\07@&PD=B00([&OL
M9!<>HY&WIR0S"LFM^',C-*Y:[-#62G(VW;0=@0HY%<?A\P)\-L-G*WQ>A,]+
M\-'@H\?Z.IK@TPR?9*POO@D^ !.'\3B,QSMB?0D83P"-1!P^B5B?#M<ZP.E 
M,PEC2;A.XC703VZ!SU:5-(:W15_>\-OWVV/J4* VJ P.-\1".[;O]&VL\]?O
M4J.D[K>NYW7F8C:MO9@XMJ,3&G*!?6D-V8>+CI?4W:$C6FB@*?22LT>1)&%1
M'<L:*&3TWGCYHK/&#D)F^SN1/.9X3"F(M*&'M+^^OXU86:OEKL[FN73I6X^2
MXRDBDXT;R/6D,([/J^/L279OFCUC#^S9$Q!QQ)XJ'L'G.@@.Z6%3WY8FA?CA
M[U:IG<UFBS=CU[GOI:0[:('H0U'7K69!D^-L32JD@=%V!C!]L!Q:<[G.+>LI
MR8LP5^=L/%GZ+&1:UE7D!FSPZ#'?T=BN5XX%P_4O*_ M>/25UX^I05^A!UN;
MODAC^4=E[@R"@?\.;#$&QMB,.MVJQU1+O3&U>CKXC%:2,7N:^R(:<S)Y+*SZ
M94NUGNB6E8$95=[3NF%/-2KW4L1#6-,L\FKPJ+F(Y#$E*,VOJ+X(-J,ZP5-)
MI*._ +&--+._='5IC)X1Z38G86$YZ,DDF@6)B).$O(O #N?T#>"4A$$U_D:6
M)Z$J\^!5[]N^U" _0> NBZ'.\K9-Z+98/7Q)'](QJ!D6IE;H/?KXQ@]+8PXU
M =T@QS01AWC<[(@K#>['%#9CY>\'X!]OH1(7IC/=&_:ROMEB?8M@O7BJ. .?
M=5G?;+*^Y==E/>^(<XX)W9,)NV5W9?/-%W)&NK,]C4>34L: OH8W\UXU\WF[
M ^ZVP;!B.0_?:(,^C"'-M@=Q,BZWL0G"1@.;B0J[B1IU^]J'O7JNOYVS[.AS
M:;F<UN_>I]'A>"N+IU&.'-C,B/+9E%$(JGY52OVL_)C!>'KV)E4VF<#?H8II
MI)0/XEZ#2L %I3L;05J)W:&]6BAYS+Y25!9T:_?4-G;AD^>(HJBZA.=CZ[-;
M@xxxxx]K]&J<65=5Z=)Z.5>FMU!=TE53X^.PV[:]H:4[V='-M@.AYJ;FYM#K
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
2?RF+'A;R_)?^ 6*Q2Q(V3@  
 
end
------------------------------ ここまで ------------------------------