[Up] [Next] [Previous]

WAISサーバとの ゲートウェイ

WAIS は文書検索サービスを提供する上で非常に強力なツールです。WAISサー バはコマーシャルなサーバとフリーで利用できるサーバが存在します。ここで は、フリーなWAISサーバを利用して、WWWとのゲートウェイを作る方法を紹介 します。

ここでは、WAISサーバに freeWAIS-sf を、ゲートウェイに wwwwais を使用し てインストールした例を説明します。

WAISサーバの種類

世の中のWAISサーバはコマーシャル版 (WAIS 社のサーバ)とフリーな版があ ります。フリーな版としては、以下の代表的なソフトウェアがあります。

WAIS-WWW ゲートウェイの種類

WAISサーバとWWWのやりとりを行うツールは数多く作られています。以下に代 表的なゲートウェイプログラム(CGI)を紹介します。
SFgate
freeWAIS-sf とのゲートウェイプログラム (CGI)
WWWWAIS
EIT社で開発されたWAISサーバとのゲートウェイプログラム (CGI)
Son of WAIS.pl
Michael Grady 氏によって開発された WAISサーバとのゲートウェイプ ログラム (CGI)

freeWAIS-sf サーバのコンパイルとインデックスの 作成

freeWAIS-sf は下記から入手可能です。

解凍後、Configure プログラムを実行し、コンパイル(make)、インストール (make install)を行います。

次に、書類のインデックスを作成します。ここでは、RFC をインデックス化し た例を示します。

RFC書類の場所
/usr/local/etc/httpd/htdocs/RFC/
WAISインデックスの場所
/var/spool/wais/
インデックス名
rfc
と考えた場合、
# cd /var/spool/wais
# waisindex -d rfc -r /usr/local/etc/httpd/htdocs/RFC
そして、WAISサーバを起動します。
# waisserver -p 210 -u wais -e /var/log/wais/wais.log -d /var/spool/wais

WWWWAISのインストール

wwwwais は下記から入手可能です。

CONFFILE の定義を変更後、以下のようにコンパイルし、CGI-BIN へインストー ルします。
# cc -O -o wwwwais wwwwais.25.c
# cp wwwwais $CGI-BIN
次に、下記の wwwwais.conf 内の項目を変更します。
SelfURL
wwwwaisのフルURL名
MaxHits
最大ヒット数
AddrMask
アクセス制限をする場合に設定する。
WaisqBin
waisq コマンドのパス名
WaissearchBin
waissearch コマンドのパス名
SwishBin
swish コマンドのパス名
WaisSource
参照するドキュメントインデックスのソースファイル
WaisSource /var/spool/wais/rfc/src "RFC"
       
SourceRules
書類のパスを変更する場合に指定します。

IconUrl
アイコンイメージのURL
これで、http://www.foo.co.jp/cgi-bin/wwwwais でWAISゲートウェイが実行 できます。また、wwwwais.25.c を変更し、最大ヒット数、ソートタイプを指 定できるように変更できます。
*** wwwwais.25.c	Mon Feb 12 14:38:26 1996
--- wwwwais.251e.c	Mon Feb 12 17:16:44 1996
***************
*** 1119,1132 ****
  			selection)) ? " selected" : "", sourcelist->line);
  			sourcelist = sourcelist->next;
  		}
! 		printf("</select>\n<p>\n");
  	}
  	printf("<input type=hidden name=message value=\"%s\">\n",
  	"If you can see this, then your browser can't support hidden fields.");
  	printf("<input type=hidden name=source value=\"%s\">\n", source);
  	printf("<input type=hidden name=sourcedir value=\"%s\">\n", sourcedir);
- 	printf("<input type=hidden name=maxhits value=\"%s\">\n", maxhits);
- 	printf("<input type=hidden name=sorttype value=\"%s\">\n", sorttype);
  	printf("<input type=hidden name=host value=\"%s\">\n", host);
  	printf("<input type=hidden name=port value=\"%s\">\n", port);
  	printf("<input type=hidden name=searchprog value=\"%s\">\n",
--- 1119,1148 ----
  			selection)) ? " selected" : "", sourcelist->line);
  			sourcelist = sourcelist->next;
  		}
! 		printf("</select>\n<br>\n");
  	}
+ /*	printf("<input type=hidden name=maxhits value=\"%s\">\n", maxhits);*/
+ /*	printf("<input type=hidden name=sorttype value=\"%s\">\n", sorttype);*/
+ 	printf("Maxhits: ");
+ 	printf("<select name=\"maxhits\">\n");
+ 	printf("<option> 10\n");
+ 	printf("<option> 20\n");
+ 	printf("<option> 40\n");
+ 	printf("<option> 100\n");
+ 	printf("<option value=9999> all\n");
+ 	printf("</select>\n<br>\n");
+ 	printf("Sorttype: ");
+ 	printf("<select name=\"sorttype\">\n");
+ 	printf("<option value=score> Score\n");
+ 	printf("<option value=lines> Lines\n");
+ 	printf("<option value=bytes> Bytes\n");
+ 	printf("<option value=title> Title\n");
+ 	printf("<option value=type> Type\n");
+ 	printf("</select>\n<br>\n");
  	printf("<input type=hidden name=message value=\"%s\">\n",
  	"If you can see this, then your browser can't support hidden fields.");
  	printf("<input type=hidden name=source value=\"%s\">\n", source);
  	printf("<input type=hidden name=sourcedir value=\"%s\">\n", sourcedir);
  	printf("<input type=hidden name=host value=\"%s\">\n", host);
  	printf("<input type=hidden name=port value=\"%s\">\n", port);
  	printf("<input type=hidden name=searchprog value=\"%s\">\n",


[Up] [Next] [Previous]