全文検索ではなくて、特定のタグのみを検索対象にするには
[上に]
[前に]
[次に]
ひろあき
[E-Mail]
1999/11/01(月) 02:43:51
和英辞書のような検索CGIを付けたいのですが、
全文検索ではなくて、ある一つのタグの中のみ検索する
CGIを探しています。
(タグというのは検索専用に作る。CGIの作成元が指定した形式)
そういう用途専用のCGIがありましたらご教授ください。
また、既存のCGIで改造すれば使える。という情報がありましたら、
そちらの回答もよろしくお願いします。
ぎん
1999/11/05(金) 17:27:51
あまり詳しくはないんですが。。。
同様のCGIを作った事があります。
あくまでも、参考意見として聞いてくださいね。
私の場合はデータ自体をタグで区切らない形式で保存しました。
例えば、
CLOUD,雲
RAIN,雨
などの様にカンマ区切りで保存します。
データ登録のCGIでは、本文中に,があったら,の全角に変換。
データ抽出表示のCGIでは、
awkを用いて、該当データの判定をすると共に、
HTMLのタグも付加して出力する。
上記により実現させましたが、
他にいい方法やツールがあるかも知れません。
Aurai
[E-Mail]
1999/11/08(月) 06:16:30
$file = "index.html";
$word = "TRPG|REPLAY";
open(IN,"$file");
while(<IN>){
last if (m|</HEAD|i);
@tags = /<[^>]+>/g;
foreach $tag (@tags){
if ($tag =~ /<META NAME="?KeyWord"? CONTENT="([^"]+)/i){
$tag = $1;
if ($tag =~ /$word/){
print "found '$word' in '$file'\n";
}
}
}
}
close(IN);
こういうこと?
(はずしてるだろうな)
Aurai
[E-Mail]
1999/11/08(月) 07:39:21
$word = "TRPG";
$dir = '..';
opendir(DIR,$dir);
@files = readdir(DIR);
closedir(DIR);
while (@files){
$file = shift(@files);
if ((-d "$dir/$file") && !($file =~ /^\./)){
opendir(DIR,"$dir/$file");
@children = readdir(DIR);
closedir(DIR);
foreach $child (@children){
next if ($child =~ /^\./);
push(@files,"$file/$child");
}
}
next if (!(-s "$dir/$file" && $file =~ /\.htm/));
open(IN,"$dir/$file");
read(IN,$_,1024);
close(IN);
@tags = /<[^>]+>/g;
foreach $tag (@tags){
last if ($tag =~ m|</HEAD|i);
if ($tag =~ /<META NAME="?KeyWord"? CONTENT="([^"]+)/i){
$tag = $1;
if ($tag =~ /$word/){
print "found '$word' in '$dir/$file'\n";
}
}
}
}
ん〜、朝っぱらから暇人ね
[上に]
[前に]
[次に]