namazu-ml(avocado)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
pnamazu-98.06.17
- From: Rei FURUKAWA <furukawa@xxxxxxxxxxxxxxxx>
- Date: Wed, 17 Jun 1998 12:34:49 +0900
- X-ml-name: namazu
- X-mail-count: 00842
古川です。
>> On Tue, 16 Jun 1998 17:10:48 +0900, Satoru Takabayashi <ccsatoru@xxxxxxxxxxxxxxxxxx> said:
> Rei FURUKAWA <furukawa@xxxxxxxxxxxxxxxx> wrote:
>> # 近々、親戚宅 (名東区) に行きます。
> 名古屋案内でもしましょうか :-)。
子供を家内 (およびその親戚) に押しつけて、自分は大須の電気街へ、という
夢のような計画を、現在たくらんでいるところです。
久しぶりに、perl 版の検索クライアントを別便にて高林さんに送ります。
# '+': 新規仕様
# '?': 試験的仕様
# '-': 仕様の削除
# '*': 本体以外の仕様
# '!': 修正
# 98.06.17
# * wakati.pl < filename ができなかったのを修正
# + 村下@池上通信機さんのパッチをもとに、LANGUAGE および veryshort
# に対応
# ? 正規表現に対応した。
# 2 バイト文字列はコンバートする
# NMZ.w があれば、それを使う
# + フレーズ検索対応
正規表現についてですが、2 バイト文字列については、ちょっと細工をしてい
ます。perl の正規表現では、
/[ア-オ]/
とやっても、
/[\xa5\xa2-\xa5\xaa]/
と解釈されてしまうため、これを
/(\xa5[\xa2-\xaa])/
と変換するような細工をしています。従って、カッコの順番が変わってしまう
ため、\1 のような表現は、使えません。今のところ、{m,n} も使えません。
NMZ.w があれば、そちらを使うようにしています。無い場合、
2 バイト文字列については NMZ.m & NMZ.mi
1 バイト文字列については NMZ.s & NMZ.si
が必要です。
2 バイト文字列で NMZ.mi を使う場合、全空間をスキャンするのを防ぐため、
簡単なロジックですが、侯補を絞ってから調べるようにしています。
1 バイト文字列については、しんどかったので、何もしていません。全空間を
スキャンしてしまいます。
これにより、中間 & 後方一致の仕様は削除しようかとも思いましたが、
内蔵わかち書きとの相性
正規表現では、/知大/ で '愛知大学' を調べることはできない
'*知大*' ならば可能 (他に '知大' を含む語がなければですが)
せっかく作ったのにもったいない
という理由により、しばらくは残すこととします。
フレーズ検索については、
「演算子の無い検索語の並び (通常は and 演算) は、すぐ外
のカッコが '{ }' だった場合には、phrase 演算として扱う」
という仕様になっています。
{ 制御 ( システム | system ) }
{ *学部 *学科 }
{ /(バ|ヴァ)イオリン/ 協奏曲 }
といった検索もできます。
また、「愛知大学」を検索すると、{ 愛知 大学 } に展開するようになってい
ます。
--
ヤマハ(株)ピアノプレーヤ設計課
古川 令
furukawa@xxxxxxxxxxxxxxxx