#2 Article 2112 Posted at 1994/12/07 23:19:04 by SysopMick'n (MAP001) [SEARCH]
Subject: Re: Re: bbs 検索機能のダイレクトコマンド /2111 /2098
>1) -key や -id を複数回指定できるのでしょうか?
-key や -id の指定はそれぞれ一回しか指定できないと考えて下さい。
-key と -id の両方を指定した場合は両方の条件を満たすアーティクルを
検索します。
(正確にはボードやボードグループなどの読む対象一つについて、
1番最後に指定したものが有効となる、です。後述)
>| bbs a -key!TRASH -key!GOMI -key!TEST
-key! ではなくて -key!= ですね。
これは正規表現を使えば可能です。
bbs a -key!=/TRASH|GOMI|TEST/
です。| は 「または」を意味します。
-id については「または」に相当する指定は今のところできません。
(-id=MAP001,1406 などとできるようにしようとは考えています)
| bbs r #148 -id!MAP4556 -keyOFF -key!/^OFF.*REP$/
ではなくて、
| bbs r #148 -id!=MAP4556 -key=OFF -key!=/^OFF.*REP$/
ですが、これはアーティクルの範囲を指定してないのでエラーになります。
また、-key や -id の指定は ボードやアーティクル範囲の指定よりは前に指定し
て下さい。前から順番に引数を解析しているだけなので...。その上で、たとえば、
| bbs a -id!=MAP4556 -key=OFF -key!=/^OFF.*REP$/ #148
とした場合、2 番目の -key=OFF は無視されます。ID が MAP4556 でなく、かつ、
/^OFF.*REF$/ にキーワードがマッチしないアーティクルの未読を読むことになり
ます。
* bbs read の場合:
bbs read ...... aARTICLE1 ...... aARTICLE2 ...
^^^^^^(1) ^^^^^^(2)
aARTICLE1 の検索には (1) で指定した検索条件やボードが、
aARTICLE2 の検索には (2) で指定した検索条件やボードが適用されます。
(2) で指定しなかった場合は (1) の条件が ARTICLE2 にも適用されます。
* bbs allread の場合:
bbs allread ...... #BOARD1 ...... #BOARD2 ....
^^^^^^(1) ^^^^^^(2)
#BOARD1 の検索には (1) で指定した検索条件が、
#BOARD2 の検索には (2) で指定した検索条件が適用されます。
(2) で指定しなかった場合は (1) の条件が #BOARD2 にも適用されます。
しかも -key や -id を(1)の中や(2)の中で複数指定した場合は、最後の指定のみが
有効となります。
(例1) -key=ABC -key=CDE #BOARD1
#BOARD1 の、キーワードに CDE を含むもの
(例2) -key=ABC #BOARD1 -key=CDE #BOARD2
#BOARD1 の、キーワードに ABC を含むものと、
#BOARD2 の、キーワードに CDE を含むもの。
(例3) -key=ABC -id=MAP1406 #BOARD1 -key=CDE #BOARD2
#BOARD1 の、キーワードに ABC を含む MAP1406 の書いたものと、
#BOARD2 の、キーワードに CDE を含む MAP1406 の書いたもの。
>2)メニューの s (search) コマンドはかなり負荷がかかるらしいですが
メニューの s コマンドのうちキーワードや ID については -key などのダイレクト
コマンドのオプションと同じ負荷です。それほど重くはないと思います。
メニューの s コマンドのみで使える「全文検索」はかなり負荷がかかります。
>3)この機能を使った時にはポインタは動いてしまいますね?
そのままだと移動してしまいます。
しかし、-p というオプションを bbs コマンドに指定するとポインタを移動させ
ずに読むことができます。
>・そこら中に散らばっている SysOp の書き込みを集める。その後通常に
>味読処理をする。という事はできませんね
bbs allread -p -id=MAP001
bbs allread -id!=MAP001
でよいはずです。(ただ、最初のコマンドを実行終了した直後に書かれた MAP001
のアーティクルは飛ばされてしまいます)
というわけで、この検索オプションでの機能には制限があります。複雑な条件が指
定できるコマンドは別に作ろうかと考えてます。(オプションの解釈の整合性が
とれなくなる可能性もあるので)
SysopMick'n (MAP001)