このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

e.g. public beta がリリースされました

発言者:田中求之
( Date Wednesday, May 22, 1996 13:45:44 )


昨日の NetFinder に続いて、検索用 CGI である e.g. の public beta が
公開されました。



→  Apple e.g.

田中求之 さんからのコメント
( Wednesday, May 22, 1996 14:29:19 )

期待に満ちてダウンロードしてみたのですが、
ファイルが壊れているようで、立ち上がりませんでした。

なんだかなぁ

田中求之 さんからのコメント
( Thursday, May 23, 1996 02:33:16 )

ダウンロードをやり直したら、壊れてませんでした。



田中求之 さんからのコメント
( Thursday, May 23, 1996 16:15:44 )

さっそくセットアップして試してみましたが、これはすごい。
検索速度の速さはさすがです。テキストになっている情報の
検索速度としては抜群ですね。ちゃんと Rating も出るし。

ただし、検索結果をテーブルにして返す方だと、テーブルの作成に
時間がかかるようです。

さっそく、私のサーバーに登録してあるサーバー関連情報の検索が
行えるページを、この EG を使ってセットアップしてみようと思います。

田中求之 さんからのコメント
( Thursday, May 23, 1996 17:03:54 )

e.g. を使った検索ページを作ってみました。

この会議室のページも検索の対象に入っています。ただし、コメントなどは
付けられません。

→  Information Searcher

田中求之 さんからのコメント
( Thursday, May 23, 1996 18:49:44 )

e.g. とは直接関係ないんですが、上記の検索ページを試していたら、
すでにリンクから外している(公開をやめた)ページが結構残っている
のに気がつきました。

笑ってごまかすしかないな (^_^;;

nalika さんからのコメント
( Monday, May 27, 1996 14:16:29 )

e.g. を私も試そうとダウンロードしてきました。

ただ、うまく index をつくれないでエラーになってしまいます。
セットアップに失敗しているのでしょうか。
#~G疋05/27/1996  14:10:28 Couldn't open the index. Got an exception'VSBI'
#~G疋05/27/1996  14:10:28 Quit, delete the index, then launch this app and choose Update Index Now.

webstar 側の設定は不要ですよね?

あと、eg.acgi, 1.gif, EGTemplate.html は
webstar と同じ階層にコピーしないといけないのでしょうか。
eg.acgi は root の階層に alias  を作ってくれますけど。

私のホームページに、e.g.が必要なほどデータはないのですが、
まあ、物はためしですからね。

田中求之 さんからのコメント
( Monday, May 27, 1996 15:01:16 )

WebSTAR の設定は一切不要です。

で、私の場合は、エイリアスは使わずに(この手のツールはエイリアスを使うと
おかしくなることが多いので)、e.g. のファイルはすべて WebSTAR と同じ
フォルダーに直接入れてあります。

元永二朗 さんからのコメント
( Sunday, June 02, 1996 04:21:22 )

こちらには初めてお邪魔します。
もう皆さんお気づきかとは思いますが・・
egの日本語なんですが、

on ヌevent WWWスsdocネ path_args ツ
	given ヌclass kforネ:http_search_args, ヌclass postネ:post_args, ヌclass methネ:method ツ
	, ヌclass addrネ:client_address, ヌclass userネ:username, ヌclass passネ:password ツ
	, ヌclass frmuネ:from_user, ヌclass svnmネ:server_name, ヌclass svptネ:server_port ツ
	, ヌclass scnmネ:script_name, ヌclass ctypネ:content_type
	
	set post_args to changeToSJIS (DecodeURL post_args)
	tell application "eg.acgi" to return (ヌevent WWWスsdocネ path_args ツ
		given ヌclass kforネ:http_search_args, ヌclass postネ:post_args ツ
		, ヌclass methネ:method, ヌclass addrネ:client_address, ヌclass userネ:username ツ
		, ヌclass passネ:password, ヌclass frmuネ:from_user, ヌclass svnmネ:server_name ツ
		, ヌclass svptネ:server_port, ヌclass scnmネ:script_name, ヌclass ctypネ:content_type) ツ
		
	
end ヌevent WWWスsdocネ

っていう、要するにAppleEventを横取りしてデコードしてegに改めて渡す
cgiを作ってeg.cgiと言う名で保存してやると通りました。この場合、eg本体
をリネームするとうまく動かないので(リプライされるページのタグも連動して!
変わってしまう)イベント横取り屋と本体は違う階層に置くことになります。
画像ファイルのみ横取り屋と同じ階層に置いてください。
またまたosaxを使わせていただきましたm(_ _)m。

では。

元永二朗 さんからのコメント
( Sunday, June 02, 1996 04:40:58 )

》eg.cgiと言う名で保存

間違えました。eg.acgiです。

→  ファイルの置き方の一例

元永二朗 さんからのコメント
( Sunday, June 02, 1996 15:43:07 )

その後いろいろ検索してみたところ、うまく検索できる文字列とダメなものがあるようです。

ショージ@ディアイティ さんからのコメント
( Monday, June 03, 1996 12:58:59 )

>うまく検索できる文字列と・・・

 S-JISだとバックスラッシュが入る文字があるので検索は難しいですよね。

田中求之 さんからのコメント
( Monday, June 03, 1996 14:25:07 )

検索語句は、確かに元永さんの中継法で渡せますねぇ。

だけど、基本的には 2bytes文字列にちゃんと対応していないようで、動作が
おかしいですね。

Mac OS 8 の機能を先取りしたものということだけど、このままじゃ日本語版 OS 8
は先が長いかなぁ。

それとも Unicode を内部的に使っているのかな?

田中求之 さんからのコメント
( Wednesday, June 05, 1996 14:41:51 )

Apple e.g. 1.0b9 がリリースされました。



→  Apple EG

石津@リクルート人材センター さんからのコメント
( Wednesday, June 05, 1996 20:40:47 )

どうもはじめまして。
本日会社のWebStarで色々と遊んでみようと、田中さんのToolを
ダウンロードさせていただきました。素晴しいツールをどうもありが
とうございます。利用させていただきたいと思います。

eg.acgiも興味があって、早速設定して元永さんのスクリプトも試して
みました。文字列検索をいくつかして見て気がついたのですが、egは
index作成時に8bit対応していないために正確な検索ができないのでは
ないでしょうか?

今日はもう時間がないので明日indexさせるデータをJISで作成して、
acgiもJISで検索するように変更して試してみようと思います。

あ、ひょっとしてもう試された方いらっしゃいます?

田中求之 さんからのコメント
( Thursday, June 06, 1996 00:50:20 )

> 文字列検索をいくつかして見て気がついたのですが、egは
> index作成時に8bit対応していないために正確な検索ができないのでは
> ないでしょうか?

私もそう思います。最初は単純にデコードの問題か、あるいは ISO がらみの
問題ではないかとにらんでいたんですが、根本的なところで2バイト文字
( 8bit 文字)に対応していない感じですね。

>今日はもう時間がないので明日indexさせるデータをJISで作成して、
>acgiもJISで検索するように変更して試してみようと思います。

ぜひ結果を教えてください。

検索語句を渡すときには、エスケープシーケンスをうまく処理しないといけません
よね。検索語句が英語と日本語の混じったものだと辛いなぁ。


石津@RJC さんからのコメント
( Thursday, June 06, 1996 12:01:54 )

えーJISでやった結果の報告です。

結論からすると散々でした。(;_;)
まだSJISでindexした時のほうがマシです。
まだ原因は確定させていませんが、おそらく改行をLFにしてしまうと
コメント付でリストした際に表示が無茶苦茶になるようです。
そうしたケースが頻発しました。
文字列検索そのものもSJISでやった際とヒット率は変わりません。
適切な検索ができていないようです。

検索データ作成にはJconvDDを利用してSJIS-JIS変換をしました。
元永さんのScriputでChangetoSJISをSJIStoJISに変更してコンパイルして
ダミーeg.acgiを作成し使ってみました。

データ作成面でもう少し工夫してみようと思います。
また報告します。

edの開発メンバーには2byteのエンハンスメントリクエストを送ります。:-)

石津@RJC さんからのコメント
( Thursday, June 06, 1996 12:07:20 )

edじゃなくってegでした。

石津@RJC さんからのコメント
( Tuesday, June 11, 1996 10:45:41 )

Apple e.g.での日本語ハンドリングはちょっと置いておいて、田中さんの
CGI Kitの中のfiledb_2.acgiをベースに、特定のフォルダに入っているhtml
ファイルを文字列検索して、対象ファイルのH1で囲まれたところをリストし、
ジャンプできるようにするcgiを作って見ました。

しかしいくつか問題があって
1 リスト時に同じファイルを4〜7ほど繰り返し表示してしまう。
2 ファイル名だけをリストする場合に比べて3倍ほど遅くなってしまう。
3 100件を超えるようなファイルを検索するとNetScape側でTimeoutになる。
という状況です。

改善のためのアドバイスをいただけるとうれしいです。(スクリプトをtxt
でメールします)
もしくは同等の機能を持ったものがあれば紹介していただけないでしょうか?

ほんとはApple e.g.が使えるとうれしいのに...。

石津@RJC さんからのコメント
( Tuesday, June 11, 1996 14:03:40 )

その後スクリプトを見直して1は解決しました。
しかし他は依然として解決しません。(速いマシンを使えばいいのかな?)

それよりも、このfiledb_2.acgiってリネームすると検索語句を入力した
時点から進まなくなってしまうのですが(リネームしたのもかかわらず
.../filedb_s.acgi$key=....と表示されてしまうのです)これはどこを
修正すれば直るのでしょう?

田中求之 さんからのコメント
( Thursday, June 13, 1996 23:46:24 )

e.g. 用のツールというのが出てました。e.g. も 1.0b10 になってます。

→  e.g.umbrella

田中求之 さんからのコメント
( Thursday, June 13, 1996 23:50:14 )

>それよりも、このfiledb_2.acgiってリネームすると検索語句を入力した
>時点から進まなくなってしまうのですが(リネームしたのもかかわらず
>.../filedb_s.acgi$key=....と表示されてしまうのです)これはどこを
>修正すれば直るのでしょう?

スクリプトの中で URL を埋め込んでいますので、この部分を変えていただく
ことになります。

    -- 表示用にデータを加工する

というコメントが付いた部分のちょっとしたあたりです。

石津@RJC さんからのコメント
( Friday, June 14, 1996 09:35:41 )

e.g.のホームページに行ってきたら既にb11になっていました。
早速また日本語のテストしてみます。

改造したcgiについては以下のようなscriptになっていて
ご指摘の部分は修正済みなのだと思うのですが...。
以下にscriptを引用します。全文です。長くてすいません。

property crlf : (ASCII character 13) & (ASCII character 10)
property LF : (ASCII character 10)

property http_10_header : "HTTP/1.0 200 OK" & crlf & "Server: WebSTAR/1.0 ID/ACGI" & crlf & ツ
	"MIME-Version: 1.0" & crlf & "Content-type: text/html" & crlf & crlf

property redirect_header : "HTTP/1.0 302 Found" & crlf & "Server: WebSTAR/1.0 ID/ACGI" & crlf & ツ
	"MIME-Version: 1.0" & crlf & "Location: "

property thisFldr : ""
property bodyPath : ""

---- 起動時に、この CGI の入っているフォルダーのパスを
---- thisFldr プロパティにセットする
---- 同時に、検索するフォルダーのパスを bodyPath にセットする

on run
	set myPath to path to me
	tell application "Finder"
		set thisFldr to (folder of myPath) as string
	end tell
	set bodyPath to thisFldr & "jit:"
end run

on idle
	return (60 * 60 * 24)
end idle

on ヌevent WWWスsdocネ path_args ツ
	given ヌclass kforネ:http_search_args
	try
		
		if http_search_args ュ "" then
			if http_search_args contains "key=" then
				--- http_search_args に "key=" が含まれるときには検索指令
				--- http_search_args から検索キーを抜き出す
				--- URL デコードを行う必要はない
				set AppleScript's text item delimiters to {"="}
				set myKey to (text items 2 through -1 of http_search_args) as string
				set AppleScript's text item delimiters to {""}
				
				--- 抜き出した検索キーを元にファイルを検索し、該当語句の見つかった
				--- ファイルをリストにする
				set myList to dirLister alias bodyPath type "TEXT" keyword myKey
				
				---
				if myList ュ {} then
					--- 表示用にデータを加工する
					set myNM to count items of myList
					set myData to "<h3>" & (myNM as string) & "個のファイルが見つかりました</h3><p><OL>" & crlf
					
					set myData to myData & makeList(myList) & crlf
					
					set myData to myData & "</OL><P>"
				else
					set myData to "<h3>該当するファイルは見つかりませんでした</h3>"
				end if
				
				return http_10_header & "<TITLE>検索結果</TITLE>" & crlf ツ
					& "<H2>キーワード \"" & myKey & "\" による検索</H2><HR><P>" & crlf ツ
					& myData & crlf ツ
					& "<p><HR><P><i>Files Search powered by Tanaka's osax</i>"
				
			else
				--- http_search_args にファイル名が入っていた場合は、それを読み込み
				--- 表示する
				set tgF to bodyPath & http_search_args
				set myData to readFromFile file tgF
				
				--- 表示用に "<" と ">" を置換する
				set myData to xReplace myData search "<" replace "<"
				set myData to xReplace myData search ">" replace ">"
				
				return http_10_header & "<TITLE>" & http_search_args & "</TITLE>" & crlf ツ
					& "<H1>" & http_search_args & "</H1><HR><P>" & crlf ツ
					& "<pre>" & return & myData & "</pre>"
				
			end if
		else
			redirect_header & "jit.html" & crlf & crlf
		end if
		
		
	on error errMsg number errNb
		set AppleScript's text item delimiters to {""}
		return http_10_header & "<TITLE>Error</TITLE>" & crlf ツ
			& "<h1>Error</h1>" & crlf ツ
			& "<h3>実行中にエラーが生じました</h3><HR><P>" & errMsg
	end try
	
end ヌevent WWWスsdocネ

--- 検索結果のリストを元に、表示用のリストに仕立てるハンドラー
on makeList(myList)
	
	--- 検索でヒットしたページから、ページの TITLE を抜き出し、それをもとに
	--- リンクを張ったリストを作る。ページの最終更新日も織り込む
	
	set myData to ""
	repeat with myF in myList
		set tgF to alias (bodyPath & myF)
		set myTitle to item 1 of (pickUpFrom tgF startOf "<H1>" endOf "</H1>" with Trim)
		set myData to myData & "<li><b><a href=\"jit/" & myF & " \" target=\"html\">" & myTitle & "</b></a><br>" & crlf ツ
			& "<TT>( " & ((modification date of (info for tgF)) as string) & " )</TT><p>" & crlf
	end repeat
	return myData
end makeList

田中求之 さんからのコメント
( Wednesday, June 19, 1996 13:54:33 )

e.g. で定期的に Automatic Indexing をやらせていたら、しっかりと
夜中に爆弾を出して、サーバーを殺してくれました… トホホ

私のサーバーで爆弾出すなんて、ええ根性しとるやないか、とごみ箱に送って
やりたくなりましたが(爆弾出たの半年ぶりぐらいやな)、便利さに負けて
命だけは助けてやることにしました。そのかわり、手動 Indexing に切り替え
ましたけど。

うむ、まだまだベータなやつである。

児玉@Gallery GOGAKU さんからのコメント
( Wednesday, June 19, 1996 18:49:37 )

なるほどっ、そういう理由だったのですね。

てっきりbookmarkが昇天されたかと思いバックアップと入れ替えました。

#私はEudora Pro 2.1.4-Jにして以来爆弾出っぱなし・・・(;_;)

田中求之 さんからのコメント
( Thursday, June 20, 1996 00:46:51 )

e. g. の 8bits 対応版が出ましたね。今、バックで落としている最中ですが
果たしてどこまで日本語が使いものになるか、楽しみではあります。

田中求之 さんからのコメント
( Thursday, June 20, 1996 16:26:44 )

試してみたところ、SJIS なら日本語も検索できるようですね。これは便利だ。

石津@RJC さんからのコメント
( Thursday, June 20, 1996 21:35:49 )

やったー遂に出ましたか。:-)
エンハンスメント送って良かった。

今ダウンロードしてますがb12でいいんですよね?

田中求之 さんからのコメント
( Thursday, June 20, 1996 23:40:22 )

b12 です

ざっと試した範囲では、特に問題もないようでした。



田中求之 さんからのコメント
( Friday, June 21, 1996 01:19:23 )

>ざっと試した範囲では、特に問題もないようでした。

…やっぱ、おかしいです。

日本語で検索すると、全然関係ないものまでヒットしてしまいますね。ですから、
日本語での検索結果は全然あてになりません (;_;)

(半角アルファベットの大文字/小文字の処理が関係しているのかな??)

石津@RJC さんからのコメント
( Friday, June 21, 1996 14:55:39 )

うーん残念ですね..。
早く何とかしてほしいっす。

Yamamoto Takeshi さんからのコメント
( Tuesday, July 09, 1996 22:29:13 )

Apple.e.g b12を試しているのですが何点かわからないところがあります

 ●探す文字の頭にスペースがないと引っかけないのでしょうか
 ●逆に正規表現やワイルドカードは使えないのでしょうか

欧文の場合は単語がスペースで区切られているので問題ないのでしょうが
日本語の場合は単語が連続しています。スピードを落としてもいいので
検索させる方法があれば実用になるんですけどね。
----逆にスペースさえ入っていればSJIS漢字なら使えるんでしょうか?
----これは今度試してみます。

田中求之 さんからのコメント
( Tuesday, July 09, 1996 22:42:14 )

> ●探す文字の頭にスペースがないと引っかけないのでしょうか

これについては、Index の構造を解析したわけではありませんので、確かなことは
言えませんが、特にスペースで区切られていなくても「ヒットする」ことがある、
という状況のようです。基本的には、欧米系の、スペースによる単語区切りをベース
に開発されていると思われますので、日本語ではどうしても不都合が出るのはしょう
がないでしょうね。

> ●逆に正規表現やワイルドカードは使えないのでしょうか

使えませんね。

いずれにせよ、日本語の検索には期待しない方がよいと思います。そもそも漢字コード
の違いなどはサポートしていないでしょうから、検索語句が SJIS 以外だったらとんでも
ない検索結果を吐き出すのが目に見えていますしね。

田中求之 さんからのコメント
( Saturday, August 31, 1996 18:16:41 )

Apple e.g. 1.0b18 がリリースされました


→  Apple e.g. (CyberTech)