色々さがしたんですが、登録してURLのリンクなどを検索するものは沢山あります。
ですが自分のサイト内を検索するものってあるんでしょうか?
「全文検索」というんでしょうか?
色んな記録や数値なんかを探したいのです。
出来れば表組みしてくれると涙ものですが・・・
やはりperlが数から言って一番多いと思いここの質問投稿しました。
私の検索の仕方が悪い、というのは洒落にならないかな?・・・

このQ&Aに関連する最新のQ&A

A 回答 (2件)

Namazuと言うWWWの全文検索システムがあります。


詳しくは、参考URLを見てください。

参考URL:http://www.namazu.org/
    • good
    • 0
この回答へのお礼

どうもです。
当方、telnet環境は使えず垂涎もののscriptは使えませんが、フリーの物で
工夫すれば面白い使い方が出来るものを見つけました。
これで一歩前進できそうです。
ありがとうございました。

お礼日時:2001/02/11 22:12

作った方が早いのでは?



作ることができないのであれば、その手のものを
使っているサイトをご存じなのであれば、そこの
管理者様に聞いてみるのが一番でしょう。

ではでは☆
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q全文検索ではなく、必要なデータ(複数フィールド)のみを検索するにはどうしたらいいですか?

はじめまして、まだCGI初心者なものでよくわからないですが教えてください。

あるCGI関連の書籍に付属のCD内に修められた顧客データベースを改造しているところです。このデータベースはCSVデータの全ての情報を検索して結果を表示するものなのですが、これを「備考($ message)以外の情報を全て検索して結果を表示する」とするにはどのように改造したらよろしいでしょうか。備考は検索しないけれど、他の情報は全て検索して結果を表示させるということです。ただし、結果として表示される画面には備考($ message)の内容も表示させたいのです。

検索に関わる箇所を抜き出すと次のようになります。初心者なので説明がうまくできていないと思いますが、ご解答できる方々は是非ともご教授お願いいたします。

############################
# 初期画面、検索結果表示
############################
sub html {
open(IN,"$file") || &error(100,'ファイルをオープンできません');
@DB = <IN>;
close(IN);
@DB = reverse(@DB);

if ($FORM{'action'} eq "search") {
$kw = $FORM{'kw'};
&jcode::convert(*kw,'euc');
foreach $line (@DB) {
$value = $line;
if ($kw =~ m/[\*\{\}\=\&\@\~\>\<\#\%\"\'\`\(\)\[\]\\\/\:\;\_\,]/){
&error(101,'検索キーが不適切です'); }

&jcode::convert(*value,'euc');
if ($value =~ /$kw/i){
push(@HIT,$line);
}
}
}else{
@HIT = @DB;
}
print "Content-type: text/html\n\n";

print <<"EOL";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=x-euc-jp">
<title>$title</title>
@style
</head>
<body>
<div align="center">
<p class="title">$title</p>
<p class="text"><b>|</b><a href="$HomeUrl">ホームページ</a><b>|</b></p>
<form method="post" action="$reload">
<input type="hidden" name="action" value="write">
<input type="submit" value="データベースに書き込む" class="buttonsmall">
</form>
<form method="post" action="$reload">
<input type="hidden" name="action" value="search">
<table border="0" cellspacing="0" cellpadding="2">
<tr>
<td>
<p class="text">名前、ユーザー名他、備考文の文字検索ができます。</p>
</td>
</tr>
<tr>
<td>
<table border="0" cellspacing="0" cellpadding="2">
<tr valign="bottom">
<td>
<input type="text" name="kw" size="30" class="textarea">
</td>
<td>
<input type="submit" value="検索" class="buttonsmall">
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
EOL


if ($FORM{'line'} eq ''){
$line = 0;
}else{
$line = $FORM{'line'};
}

$data_count = @HIT - 1;
$view_end = $line + ($view-1);
if ($view_end >= $data_count){
$view_end = $data_count;
}
foreach ($line .. $view_end) {
($date_now,$number,$name,$email,$hp,$message,$tiku,$yuza,$tel,$fax,$busho)
= split(/\,/,$HIT[$_]);
$message =~ s/\r/<br>/g;
print <<"EOL";

############################

はじめまして、まだCGI初心者なものでよくわからないですが教えてください。

あるCGI関連の書籍に付属のCD内に修められた顧客データベースを改造しているところです。このデータベースはCSVデータの全ての情報を検索して結果を表示するものなのですが、これを「備考($ message)以外の情報を全て検索して結果を表示する」とするにはどのように改造したらよろしいでしょうか。備考は検索しないけれど、他の情報は全て検索して結果を表示させるということです。ただし、結果として表示される画面には備考($ mes...続きを読む

Aベストアンサー

検索のロジックは、
------------------------------
1行取りだして、$lineに入れる
$lineの内容を$valueに入れる
$valueにキーワードが含まれているかどうかチェックする
------------------------------
というようになっています。これを全行分くりかえしています。
$valueがチェックの対象ですから、チェックの対象を変更したいなら$valueを調整すればOKです。
上記の「$lineの内容を$valueに入れる」の部分を、「$lineのうち必要なものだけを$valueに入れる」という処理に変えます。

簡単な方法としては、この行を、

$value = $line;
 ↓↓
$value = join ',', (split /,/, $line)[1, 3, 4, 5];

に書き換えれば良いと思います。
CSVの左から2、4、5、6個目の項目だけ取り出して、$valueに入れています。
チェックさせたい項目を指定してください。一番左がゼロ、次が1、2、3…です。

ちなみに、カンマで区切って取り出した後にわざわざまたカンマでつないでいるのは、キーワードとフィールドの切れ目を考慮してのことです。

ところで、最初に書いたロジックをもう一度よく見てください。
なんだか無駄なことしていますよね。$lineは何のためにあるのか?はじめから$valueに入れればいいのに。
そういう意味では、今回のように特定の項目だけ対象にすることを想定してあるのかもしれませんね。

検索のロジックは、
------------------------------
1行取りだして、$lineに入れる
$lineの内容を$valueに入れる
$valueにキーワードが含まれているかどうかチェックする
------------------------------
というようになっています。これを全行分くりかえしています。
$valueがチェックの対象ですから、チェックの対象を変更したいなら$valueを調整すればOKです。
上記の「$lineの内容を$valueに入れる」の部分を、「$lineのうち必要なものだけを$valueに入れる」という処理に変えます。

簡単な方法と...続きを読む

QPerl5.8とPerl5.6は共存可能でしょうか?

WindowsでActivePerlを使っています。現在Perl5.8を入れていますが
後からPerl5.6を入れて、Perl5.6を優先的に使いたいのですが
Perl5.8とPerl5.6の共存は可能でしょうか?

Aベストアンサー

おいらのやり方  基本的には#1さんのと同じですが
E:ドライブにApacheなども入れているので
Perl5.6を e:\usr\binに、Perl5.8をE:\usr\local\bin にいれます。
ApacheとPerlを同じドライブに入れれば .cgiとして使うときにshebang文を
#! /usr/bin/perl と記述することが出来ます。

1.Perlのインストール前に e:\usr その下に\localというフォルダを作っておきます。
2. Perl5.8インストール時 Choose Setup Typeのところで Customを選びます
3.次の画面で [Browse ]ボタンを押して e:\usr\localを指定します。<=e:\usr\local\binでは有りません
4. NEXTを押してインストールを続けます

次に5.6のインストール
5. Perl5.8と同じようにしてpathを今度は e:\usr を指定します

両方インストールが終わったらOSの環境変数pathで
perl5.6のあるe:\usr\binを5.8のあるe:\usr\local\binよりも上位にします
pathの設定方法は
http://www.gihyo.co.jp/book/2000/179111/download/index1.html を参考に
;で複数のエントリーを記述している場合、例えばpathの記述が
c:\windows;c:\windows\command;e:\usr\local\bin;e:\usr\bin なら
c:\windows;c:\windows\command;e:\usr\bin;e:\usr\local\bin にするか#1さんの言う様にe:\usr\local\binを消します

WIN98などで autoexec.batに
PATH C:\windows;C:\windows\command
PATH %PATH%;e:\usr\local\bin
PATH %PATH%;e:\usr\bin   <=この場合はこの行を上に変更
http://www.hir-net.com/soft/doc/install.html
 (WIN95/98では再起動後に有効になります)

うまくいったか確認はコマンドラインで
c:\hoge> perl -v (perl -V だともっと詳しい情報が表示される)

おいらのやり方  基本的には#1さんのと同じですが
E:ドライブにApacheなども入れているので
Perl5.6を e:\usr\binに、Perl5.8をE:\usr\local\bin にいれます。
ApacheとPerlを同じドライブに入れれば .cgiとして使うときにshebang文を
#! /usr/bin/perl と記述することが出来ます。

1.Perlのインストール前に e:\usr その下に\localというフォルダを作っておきます。
2. Perl5.8インストール時 Choose Setup Typeのところで Customを選びます
3.次の画面で [Browse ]ボタンを押して e:\usr\loca...続きを読む

Qperlとmod_perlの併用について

同一Webサーバ上で通常のperlとmod_perlを併用することは
可能でしょうか?

バーチャルホストを使用してWebページ用のディレクトリは
通常のperl仕様のWebページとmod_perl仕様のWebページと分けて
構わないのですが・・・

よろしくお願いします。

Aベストアンサー

Perlが必須かmod_perlが必須か、ということではなく、mod_perlを使うか使わないか、という差になるはずです。
いずれにしても、Perlは必須なので。

2つのWebページの片方は、Perlで出力するWebページ(拡張子 .cgi)で、もう片方はmod_perl仕様で出力するWebページ(拡張子 .mcgi)とすれば、先の設定でいけるんですけど。
※.mgciを利用するなら mime.types の設定も必要か

設定については、検索するか本を購入。
っていうか、自分で調べたり、実際に試したりしてないのかな?

QVineLinux2.6でPerl5.6.13から Perl5.8にするには

VineLinux2.6でPerl5.6を使っています。
apt-get upgrade perlで簡単にアップグレードできると思っていましたが、Perl 5.6.13にアップグレードしただけで、5.8までできませんでした。rpm -eでアンインストールしてから行おうとしましたが、たくさん依存関係がでました。また、ActivePerl5.8用のrpmも存在していますが、これを単に rpm -Uvhでインストールしても
依存関係で問題ないでしょうか?

Aベストアンサー

Vine Linux 2.6 標準のperlに対してActivePerl5.8をアップグレードできるのかな・・・・? 先に「-i」でActivePerlを入れてようとしてみてはどうだろうか。

perl5.6を先に消したいのであれば、依存関係にあるパッケージを全て削除する必要があるが、例えばApacheの設定ツールなど、Perlに依存したツール類は結構多いので、依存関係を無視して削除した方が良いかも知れない。後でperl5.8でもそれらは動くと思われるし。

Vine標準のPerlの依存関係が山ほど出てくるのは、先述のツール類が多いが、後でperl5.8を入れるつもりならばあまり心配はないように思う。多分。

QPerlの出力を、Perlから実行するプログラムの標準入力にしたい

現在データを収集してくるPerlのスクリプトを作っています。

このスクリプトから、ローカルにある、別のrubyスクリプトに、収集してきたデータを渡したいのですが、rubyスクリプトは、標準入力を前提として作られています。
簡単に考えると、一旦ファイルに落として、そのファイルをリダイレクトする形でPerlからrubyスクリプトを起動すればよさそうなのはわかるんですが...

なにか他にうまい方法がPerlにはあるはずだといろいろ探しているのですが、見つかりません。

ファイル渡ししか方法は無いのでしょうか?

Aベストアンサー

パイプでオープンすればよろしいのでは?

参考URL:http://www.stackasterisk.jp/tech/program/perl02_01.jsp


おすすめ情報