サンプルのデータ/プログラム
MindSearchの機能評価や学習用にサンプルのデータとプログラムを用意しています。このページではそれらについて解説します。
サンプルのデータあるいはプログラムはすべて sample/ というディレクトリ内に格納されています。1つだけ、msclient と呼ぶ標準対話型クライアントプログラムは開発用ツールの性格が強いため、bin/ ディレクトリに入っています。ディレクトリ関係は以下のようになります。
/home/foo/ ←インストールディレクトリを ~foo と仮定
|
+--- mshyper/
|
+--- bin/ ←プログラム格納ディレクトリ
| |
| +--- msclient ←標準対話型クライアント(2本1組)
| +--- msclient.mco
|
+--- sample/ ←サンプルプログラム/データ
|
+-- program/ ←サンプルプログラム
| |
| +-- javaCGI/ ←Javaで記述した簡易検索サイト
| |
| +-- javaclient/ ←Javaで記述した対話型クライアント
| |
| +-- perlCGI/ ←Perlで記述した簡易検索サイト
| |
| +-- perlclient/ ←Perlで記述した対話型クライアント
|
+-- texts/ ←サンプルテキスト格納ディレクトリ
|
+-- indexes/ ←サンプルインデックス生成ディレクトリ
サンプルデータは sample/texts/ 以下の場所に格納されています。
mshyper/
|
+--- sample/
|
+-- texts/ ←サンプルテキスト格納ディレクトリ
|
+-- eiga/ ←映画評論
| |
| +-- CREDIT.euc
| +-- eiga1.txt
| +-- eiga2.txt
| 〜略〜
| +-- eiga6.txt
|
+-- eigaDB/ ←映画評論(DBモード用)
| |
| +-- CREDIT.euc
| +-- eiga1.txt
| +-- eiga2.txt
| 〜略〜
| +-- eiga7.txt
|
+-- eigaDB2/ ←映画評論(DBモード,差分作成用)
| |
| +-- CREDIT.euc
| +-- eiga1u.txt
| +-- eiga5a.txt
| +-- eiga6a.txt
| +-- eiga7d.txt
|
+-- tokkyo/ ←特許の話
| |
| +-- CREDIT.euc
| +-- tok01.txt
| +-- tok02.txt
| 〜略〜
| +-- tok13.txt
|
+-- tokkyoDB/ ←特許の話(DBモード用)
| |
| +-- CREDIT.euc
| +-- tok01.txt
| +-- tok02.txt
| 〜略〜
| +-- tok13.txt
|
+-- tokkyoDB2/ ←特許の話(DBモード用,差分作成用)
| |
| +-- CREDIT.euc
| +-- tok03.txt
| +-- tok06.txt
| +-- tok10.txt
| +-- tok13.txt
|
+-- web/ ←Webコンテンツ(弊社HP)
|
+-- CREDIT.euc
+-- www.pinpointfinder.jp/
| +-- ・・・
| +-- ・・・
+-- www.scripts-lab.co.jp/
+-- ・・・
+-- ・・・
注:それぞれのディレクトリ内にある CREDIT.euc に目を通しておいてください。作者の名前や利用制限などが書かれています
映画評論
文字通り映画の評論です。本来1本のファイルですがあえて6分割のファイル構成としてあります。
特許の話
特許部門に在籍している方の連載記事で、比較的短い文章が13のファイルに分かれています。
Webコンテンツ
このデータはHTMLドキュメントであることが特徴です。このドキュメントを検索する時にはHTMLフィルタが自動的に起動されます。(HTMLフィルタは製品に標準添付です)
またここにあるコンテンツはツリー構造を持ったディレクトリに分散格納されている点も特徴です。(ホームページのミラーになっています)。ツリー構造のファイルを扱うサンプルになります。
このセクションでは msclient を使い、簡易的なインデックス作成と検索を行います。msclientについては 「開発関連ツールの使い方」−「msclient(標準対話プログラム)」 も合わせてお読みください。
インデックスを作成してみる
ここで実際にサンプルデータのインデックスを作成します(以降の検索テストでも使うので本当に作成してださい)。
まず、MindSearchデーモンを起動します(起動方法は こちら を参照)。
注: mshyper/bin にPATHを通しておいてください
$ cd ~/mshyper/scripts
$ msdaemon & ←バックグラウンドで起動
MSdaemon: start
Lockdaemon: start
Lockdaemon: Host:localhost Port1:3515 Port2:3516 Port3:3517
Loader: start
Loader: 共有メモリ管理テーブル獲得
Loader: get 6KB: key=07001001 id=1245184 addr=40013000 Total= 1MB
MSdaemon: waiting connection
上記のように、MindSearchデーモンの起動メッセージが表示されます。
[映画評論のインデックス作成]
映画評論をインデックス作成してみます。ファイルからのインデックス作成用のシェルスクリプトの一つ make-eiga.sh を起動します。
$ ./make-eiga.sh ←キー入力
msclient: start
msclient: Host:localhost Port:3515
"makeindex.hist"を履歴ファイルとして読み込みます。
MindSearchエンジンとの対話開始
「?」コマンドを入力するとコマンド・テンプレートを表示できます。
終了は「FIN」コマンドですが、INIコマンド未実行の場合などで強制
制終了したい場合には「quit」コマンドを使います。
_ ←キー入力待ち
上記のように、msclient の立ち上がりメッセージが表示され、キー入力待ちとなります。
まずは「?」コマンドを入力してヘルプを表示してみます。
? ←キー入力
1 INI:app01
2 STA
3 CMD:"sample/texts"を検索ベースパス設定
4 CMD:"eiga+"を検索パス設定
5 CMD:"sample/indexes/eiga/mainA"にインデックス作成
その他: silent - 検索中のレスポンスを画面に表示しない(検索速度評価用)
: verbose - silent を解除します
: quit - 検索コアに通知せず強制切断
: auto - GETコマンドの自動発行を行う(デフォルト)
: manual - GETコマンドの自動発行を一部抑止する
_ ←キー入力待ち
上記のように現在のヒストリの内容とコマンド一覧が表示されます。
ヒストリに記載されている各行はMindSearchのスクリプトであり、MindSearchの実験・学習用に作られたものです。いま読み込んだ makeindex.hist はサンプルデータからインデックスを作成するためのものです。このほかに、検索実験用の search.hist といったファイルもあります。
開発者は用途ごとの数多くの自分のためのヒストリファイルを作っておくと、各種動作確認に便利です。もちろん、そういうものをまったく使わず、すべてキーボードから入力するというのでも構いません。
さて前記の1〜5までのテンプレートを一気に実行しても良いのですが、最初なので少しずつ実行してみます。
まずは INIコマンドと STAコマンドを発行します。
1-2 ←キー入力
send=INI:app01
recv=OK:app01006055C77
send=STA
recv=OK:MindSearch Hyper Ver.2.0 (SDK) / MaxSessions=2000 / MaxConnections=3 /
Build=2009-05-23 11:37 / BasePath=/home/foo/msch/mshyper
(自動) CMD:0をエンジン側タイムアウト設定
(自動) OK:0
_ ←キー入力待ち
「1-2」という指示は特別な意味を持ち、ヒストリの1番から2番を実行せよ・・という意味になります。
上記からは、まずINIコマンドを発行し、次いでSTAコマンドを送出してセッションを開始したことが分かります(クライアントとMindSearchコアとのやりとりはすべてモニタ表示されます)。
STAコマンドのレスポンス「OK:」の後ろには多量の情報が含まれます。MindSearchのエディション名、バージョン番号、最大同時接続数、ビルド日付、ベースパスが返されているのが分かります。
「OK:」から後ろの部分はアプリケーションによって処理されるというよりは、人に読まれることを意識したものです。
ベースパス とは、MindSearchのインストールディレクトリのことです。これはMindSearchが自動計算し、この例では /home/foo/mshyper となっているのが確認できます。
次いで検索ベースパスを設定します。
3 ←キー入力
send=CMD:"sample/texts"を検索ベースパス設定
recv=OK:/home/foo/mshyper/sample/texts
検索ベースパス とは、この後で実行する「検索パス設定」のための基準パスを指定するものです。(検索パスの指定はこのように二段構えになっています)。上記例ではMindSearchインストールディレクトリ下にある sample/ を基準に設定しています。
次に映画評論のテキスト場所を検索パスに指定します。
4 ←キー入力
send=CMD:"eiga+"を検索パス設定
recv=OK:#1
上記は「検索ベースパス」からの相対パスを検索パスとして指定しています。ここまでのパス設定をまとめると以下のようになります。
ペースパス:
/home/foo/mshyper ←インストールディレクトリから自動決定
検索ベースパス設定:
指定=sample/texts 結果=/home/foo/mshyper/sample/texts
検索パス設定:
指定=eiga 結果=/home/foo/mshyper/sample/texts/eiga
今はインデックスを作成しようとしている時で、検索をおこなうわけではないにもかかわらず「検索パス設定」という指定を行なうことに違和感を覚えるかも知れません。
MindSearchでインデックス作成を行なう際、まずはディスク内にある「検索されるべきテキストファイル」を概念上の「検索パス」として扱い、そこを読み出しながらインデックスを作成するという考え方をとっています。「見えるファイル」をインデックス作成元とし、「別の指定場所」をインデックス作成先に指定してインデックス作成を行なうのがMindSearchのやりかたです。
ここでようやくインデックス作成コマンドを発行します。次のようになります。
5 ←キー入力
send=CMD:"sample/indexes/eiga/mainA"にインデックス作成
(ここでしばらく待ちます)
recv=OK:/home/foo/mshyper/sample/indexes/eiga/mainA(subA) 0分33秒319ミリを消費
インデックス作成は時間のかかる処理なので、「OK:」レスポンスが返されるまでに数秒かかりますが、より大量のテキストを処理する場合にはもっと時間がかります。(大量のデータを低機能マシンで処理する場合は時間単位で消費することもあります)
「OK:」の後ろにある情報は人が見るためのものです。インデックス生成先の絶対パスと、時間消費を確認することができます。
最後に「FIN」コマンドを手で打ち込んで mcslient を終了させてください。
FIN ←キー入力
send=FIN
msclient: exit
[特許の話のインデックス作成]
次に「特許の話」のインデックスを作成します。今度は一つ一つのスクリプトを手動で進めるのではなく一気に実行(オプション -exec)します。
$ ./make-tokkyo.sh -exec ←キー入力
msclient: start
msclient: Host:localhost Port:3515
send=INI:app01
recv=OK:app01006105C77
send=STA
recv=OK:MindSearch Hyper Ver.2.0 (SDK) / MaxSessions=2000 / MaxConnections=3 /
Build=2009-05-23 11:37 / BasePath=/home/foo/msch/mshyper
send=CMD:"sample/texts"を検索ベースパス設定
recv=OK:/home/foo/mshyper/sample/texts
send=CMD:"tokkyo+"を検索パス設定
recv=OK:#1
send=CMD:"sample/indexes/tokkyo/mainA"にインデックス作成
recv=OK:/home/foo/mshyper/sample/indexes/tokkyo/mainA(subA) 0分12秒726ミリを消費
[Webコンテンツのインデックス作成]
最後に「Webコンテンツ」のインデックスを作成します。
$ ./make-web.sh -exec ←キー入力
msclient: start
msclient: Host:localhost Port:3515
send=INI:app01
recv=OK:app01006115C77
send=STA
recv=OK:MindSearch Hyper Ver.2.0 (SDK) / MaxSessions=2000 / MaxConnections=3 /
Build=2009-05-23 11:37 / BasePath=/home/foo/msch/mshyper
send=CMD:"sample/texts/web"を検索ベースパス設定
recv=OK:/home/foo/mshyper/sample/texts/web
send=CMD:"+"を検索パス設定
recv=OK:#16
send=CMD:上位URL「http://」で"sample/indexes/web/mainA"にインデックス作成
recv=OK:/home/foo/mshyper/sample/indexes/web/mainA(subA) 0分12秒726ミリを消費
サンプルとしてはこの他に、データーベースモードで作成する"映画評論"と"特許の話"がありますが、そちらについては 擬似的なデーターベースのインデックス作成 の章で実際に作成することになっています。
インデックスをロードする
msclientと対話中の場合は一旦 msclient を終了させてください(「FIN」を入力)
先ほど作成したインデックスをロードします。以下のようにおこないます。(ロード方法の詳細は こちら)
$ msctrl load @symeiga sample/indexes/eiga ←キー入力
MSdaemon: detect SUS -> stop listen
Loader: loading /home/foo/msch/mshyper/sample/indexes/eiga
〜略〜
Loader: sync 1@symeiga
Loader: merge @symeiga: /home/foo/msch/mshyper/sample/indexes/eiga
Loader: end of merge index: shared memory consumed=11KB segments=5
MSdaemon: detect RES -> resume listen
$ msctrl load @symtokkyo sample/indexes/tokkyo ←キー入力
MSdaemon: detect SUS -> stop listen
Loader: loading /home/foo/msch/mshyper/sample/indexes/tokkyo
〜略〜
MSdaemon: detect RES -> resume listen
$ msctrl load @symweb sample/indexes/web ←キー入力
MSdaemon: detect SUS -> stop listen
Loader: loading /home/foo/msch/mshyper/sample/indexes/web
〜略〜
MSdaemon: detect RES -> resume listen
サンプルとしてはこの他に、データーベースモードで作成する"映画評論"と"特許の話"のインデックスのロードがありますが、そちらについては 擬似的なデーターベースのインデックス作成 の章で実際に作成、ロードすることになっています。
検索してみる
検索テスト用のヒストリファイルである search.hist を指定して以下のように msclient を起動します。
$ msclient search.hist ←キー入力
msclient: start
msclient: Host:localhost Port:3515
"search.hist"を履歴ファイルとして読み込みます。
MindSearchエンジンとの対話開始
_ ←キー入力待ち
以前と同様に「?」コマンドを入力してヘルプを表示してみます。
? ←キー入力
1 INI:app01
2 STA
3 --------------------
4 CMD:インデックスをつかい"symeiga"を検索パス設定
5 KEY:"映画"and"監督"
6 CMD:検索
7 GET
8 --------------------
9 CMD:インデックスをつかい"symeigaDB"を検索パス設定
10 KEY:"映画"and"監督"
11 CMD:検索
12 GET
13 --------------------
14 CMD:インデックスをつかい"symtokkyo"を検索パス設定
15 KEY:"色"and"アイデア"
16 CMD:検索
17 GET
18 --------------------
19 CMD:インデックスをつかい"symtokkyoDB"を検索パス設定
20 KEY:"色"and"アイデア"
21 CMD:検索
22 GET
23 --------------------
24 CMD:インデックスをつかい"symweb"を検索パス設定
25 KEY:"外出先"and"メール転送"
26 CMD:検索
277GET
28 --------------------
29 CMD:モード確認
_ ←キー入力待ち
search.hist を読み込んだ場合には上記のようなスクリプトがテンプレートとなります。「とりあえずサンプルを検索してみる」という用途を想定したスクリプトです。
[映画評論の検索]
映画評論のインデックスを検索してみます。まずは初期化からです。
1-2 ←キー入力
send=INI:app01
recv=OK:app01006125C77
send=STA
recv=OK:MindSearch Hyper Ver.2.0 (SDK) / MaxSessions=2000 / MaxConnections=3 /
Build=2009-05-23 11:37 / BasePath=/home/foo/msch/mshyper
上記により、INIコマンドとSTAコマンドが発行されました。
次いで検索パスの指定と検索コマンドを発行します。
4-7 ←キー入力
send=CMD:インデックスをつかい"symeiga"を検索パス設定
recv=OK:#1
send=KEY:"映画"and"監督"
recv=OK:
send=CMD:検索
recv=OK:2件(精密) 2件(ラフ) 0件(ミス) 0分0秒1ミリを消費
send=GET
recv=SS:1|XFL|eiga/eiga3.txt|20031217010203||||2|2
send=GET
recv=SB: ヨーロッパ
send=GET
recv=SR:映画
send=GET
recv=SB:といえば昔から、湿潤な邦画にはとても手が出せない独特の雰囲気が
あるものだが、これはまたその点を強調して、一定の雰囲気づくりにたいへんな労力を
割いている。そもそもベロニカという名前は、カトリックの聖女伝のなかにある名前だ
。最近は日本でも超常現象などが巷の話題になるが、ヨーロッパの
send=GET
recv=SR:映画
send=GET
recv=ES:3
send=GET
recv=SS:2|XFL|eiga/eiga1.txt|20031216010201||||2|2
send=GET
recv=SB: 1.ふたりのベロニカ 片桐 真喜子
私は、この
send=GET
recv=SR:映画
send=GET
recv=SB:の
send=GET
recv=SR:監督
send=GET
recv=SB:クシシュトフ・キェシロフスキは何というセンスの持ち主だろ
うと、今でも驚いている。ポーランドの小さな村とフランスの田舎町を舞台にしたこの
作品には、まず主演のイレーヌ・ジャコブがいる。パリジェンヌの彼女は若く美
send=GET
recv=ES:3
send=GET
recv=OK:
沢山の情報が返されていますが、詳細はプログラミングガイドで解説するのでここでは省きます。いわゆる検索サイトをアクセスして検索結果を見るようなものとはだいぶ異なりますが、msclient の利用目的がスクリプトの確認・学習用であるため、あえてレスポンスを整形せず「ありのまま」の情報を表示しています。
上記で、
Recv=SR:映画
Recv=SR:監督
とある部分(「SR:」レスポンス)が発見したキーワード(を強調表示せよという情報)なので、ここを重点的にチェックすると良いでしょう。
また上記中の所々に、
Send=GET
というスクリプト送出が見えます。「検索」コマンドのように、MindSearchコアからのレスポンスに対して、小刻みに"GET"という副コマンドを返す必要のある場面では、msclient が自動的にGETを発行するようになっています。いちいちキーボードからGETを入力するのが大変なのでそのような仕様にしているだけであり、アプリケーションレベルで言えばこのGETコマンドも含めてきちんと送出しなくてはなりません。
[特許の話の検索]
続いて特許の話のインデックスを検索してみます。
14-17 ←キー入力
send=CMD:インデックスをつかい"symtokkyo"を検索パス設定
recv=OK:#1
send=KEY:"色"and"アイデア"
recv=OK:
send=CMD:検索
recv=OK:1件 0分0秒1ミリを消費
send=GET
recv=SS:1|XFL|tokkyo/tok03.txt|19901128172700||||1|1
send=GET
recv=SB:特許の小話第3話◆
( 2) 90/11/28 17:27
◇◆◇ カラオケと特許 ◇◆◇
♪チャンチャ〜ン ♪チャンチャン ♪チャ〜ン ♪ チャン♪
こんな文字を見ると居ても立ってもいられない人はいらっしゃいませんか。
カラオケもブームになってから久しく、一生懸命励んでいる人、もうあきら
send=GET
recv=ES:
send=GET
recv=OK:
[Webコンテンツの検索]
最後にWebコンテンツのインデックスを検索してみます。
24-27 ←キー入力
send=CMD:インデックスをつかい"symweb"を検索パス設定
recv=OK:#1
send=KEY:"UNIX版"and"プログラム言語"
recv=OK:
send=CMD:検索
recv=OK:1件(精密) 1件(ラフ) 0件(ミス) 0分0秒3ミリを消費
send=GET
recv=SS:1|XFL|www.scripts-lab.co.jp/mind/ver7/unixbin/README.html|20041011185908||||1|1
send=GET
recv=SB:Mind - products - Mind Version 7 for UNIX - README.txt
================================
Mind Version 7 for UNIX
(mind7u06.tar.gz対応)
================================
スクリプ
send=GET
recv=ES:
send=GET
recv=OK:
Perlで書いた対話プログラム(perlClient) |
msclient とほぼ同じ機能を持った対話用クライアントプログラムです。このプログラムを使うこと自体よりも、ソースコードを公開することでMindSearchとの通信の実装方法(より具体的には、ライブラリ mschDriver.pl の使い方)を参考にしていただくのが目的です。アプリケーションをPerlで開発する場合の参考にしてください。
注:Perl, Java で書いた対話プログラムはタイムアウトの自動無効化がおこなわれていないため、60秒間次のコマンド発行が無いと、検索エンジンの側から強制的にコネクションを切断されてしまいます。ご注意ください。
環境設定
Perlの動作環境が必要になります。スクリプツ・ラボ社では Perl 5 にて確認をおこなっています。
起動方法
次のように起動します。(注: mshyper/bin にPATHを通しておいてください)
$ cd ~/mshyper/scripts
$ perlClient search.hist
実は、bin/perlClient はPerlのコードではなく、本物の perlClient に飛ばせるためのシェルスクリプトに過ぎません。Perlスクリプトは複数のファイルから成るため、別ディレクトリに置いてあり、その関係で変則的な起動方法をとっています。興味のある方は、bin/perlClient をcatでお読みくだいさい。
開発ディレクトリ
開発ディレクトリは、mshyper/sample/program/perlclient/ です。この下にはさらに、lib/ ディレクトリがあります。lib/ 内には、インターフェースライブラリである mschDriver.pl が入っています。
インターフェースライブラリである mschDriver.pl の使い方については、Perlの通信ライブラリを参照ください。
Javaで書いた対話プログラム(javaClient) |
msclient とほぼ同じ機能を持った対話用クライアントプログラムです。このプログラムを使うこと自体よりも、ソースコードを公開することでMindSearchとの通信の実装方法(より具体的には、クラスライブラリ MschDriver.java の使い方)を参考にしてもらうのが目的です。アプリケーションをJavaで開発する場合の参考にしてください。
注:Perl, Java で書いた対話プログラムはタイムアウトの自動無効化がおこなわれていないため、60秒間次のコマンド発行が無いと、検索エンジンの側から強制的にコネクションを切断されてしまいます。ご注意ください。
環境設定
Javaの動作環境が必要になります。スクリプツ・ラボ社では以下の環境にて確認をおこなっています。
jdk1.6.0
クラスファイル
classファイルは既に入っています。再コンパイルを行う場合には、sample/program/javaclient/ 下においてmakeを使ってください。
起動方法
次のように起動します。
注:javaが起動できるように準備しておいてください
$ cd ~/mshyper/bin
$ ./javaClient search.hist
実は、bin/javaClient はJavaのコードではなく、本物の javaClient に飛ばせるためのシェルスクリプトに過ぎません。Javaスクリプトは複数のファイルから成るため、別ディレクトリに置いてあり、その関係で変則的な起動方法をとっています。興味のある方は、bin/javaClient をcatでお読みくだいさい。
開発ディレクトリ
開発ディレクトリは、mshyper/sample/program/javaclient/ です。
インターフェースライブラリである MschDriver.java の使い方については、Javaの通信ライブラリを参照ください。
ごくシンプルな検索サイトのサンプルです。インターフェースライブラリ mschDriver.pl 経由でMindSearchを駆動します。Webアプリケーションを組む場合の参考にしてください。
環境設定
Perl
Perlの動作環境が必要になります。スクリプツ・ラボ社では Perl 5 にて確認をおこなっています。
本ディレクトリ(sample/program/perlCGI/lib)にはフリーソフトの cgi-lib.pl を同梱しています。(Copyright (c) 1996 Steven E. Brenner)。詳細は同ファイルの内容を直接参照願います。
Webサーバー側の設定
- 本CGIはディスク上にファイルを生成しないので、CGIが apache:apache や nobody:nobody 権限で実行されるようなWebサーバー設定でも使えます。
- CGIエイリアスの設定でこのディレクトリを指せるようにするのが最も簡単ですが、もし、ドキュメントルートや public_html 内でないと動作しない環境であれば、sample/program/perlCGI からそこへ向けてシンボリックリンクを張ることをお勧めします。
- もし、CGIエイリアスも作れず、シンボリックリンクも禁止されているような場合には、sample/program/perlCGI/ ディレクトリ内のファイルを(lib/サブディレクトリも含め)すべてアーカイブし、public_html/msch-sample/ のようなディレクトリの中に解凍し、Perlのスクリプトの実体をそこに置くようにしてください(複写の際、元のファイルのパーミッションが維持されるよう注意してください)。
URL
この簡易検索サイトのエントリページのディレクトリとURLの関係は、たとえば以下のようになります(CGIエイリアスではなく、ディレクトリに対してシンボリックリンクを使ったケースを示します)。
CGIディレクトリ:
/home/foo/public_html/mshyper-perlCGI
(ここにはシンボリックリンクされたフォルダ mshyper-perlCGI が
入るだけで実体は有りません)
シンボリックリンク:
/home/foo/mshyper/sample/program/perlCGI
→ /home/foo/public_html/mshyper-perlCGI
URL:
http://www.mycompany.co.jp/~foo/mshyper-perlCGI/search.cgi
画面例
正しく動作していれば、ブラウザで上記URLにアクセスするとCGIが生成した画面が表示されます。
デフォルトの検索対象が「映画評論」になっているので、キーワード入力欄に「ヨーロッパ 監督」と入れ(条件式としては「ヨーロッパ and 監督」の意味)、次いで「検索」ボタンを押してください。以下の画面が表示されます。

検索対象として「映画評論(DB)」あるいは「特許の話(DB)」を試す場合には事前にそれららのインデックスを作成し、ロードしておく必要があります。詳しくは 擬似的なデーターベースのインデックス作成 の解説を参照してください。
ごくシンプルな検索サイトのサンプルです。インターフェースライブラリ MschDriver.java 経由でMindSearchを駆動します。Webアプリケーションを組む場合の参考にしてください。
環境設定
Java
Javaの動作環境が必要になります。スクリプツ・ラボ社では以下の環境にて確認をおこなっています。
JDK1.6
TOMCAT-5.0
なおこの検索サイトのプログラムはサーブレットのみで記述しており、JSPは使っていません。
Webサーバー側の設定
- このディレクトリに、search.htmlというHTMLファイルが1つだけ入っていますが、直接Webサーバに読ませるものではなくサーブレットに読ませるテキストファイルです。
- 本ディレクトリのメインクラスである Search.class がサーブレットとして実行できるような設定にしてください。
- 本サーブレットはディスク上にファイルを生成しないので、サーブレットの実行権限は任意です。
URL
この簡易検索サイトのエントリページのディレクトリとURLの関係は、たとえば以下のようになります。
サーブレットの実ディレクトリ(例):
/home/foo/mshyper/sample/program/javaCGI
(メインクラスは Search.class)
サーブレットのエイリアス(例):
/mschJavaServlet/
URL(例):
http://www.mycompany.co.jp/mschJavaServlet/Search
画面例
正しく動作していれば、ブラウザで上記URLにアクセスするとサーブレットが生成した画面が表示されます。
デフォルトの検索対象が「映画評論」になっているので、キーワード入力欄に「ヨーロッパ 監督」と入れ(条件式としては「ヨーロッパ and 監督」の意味)、次いで「検索」ボタンを押してください。以下の画面が表示されます。

検索対象として「映画評論(DB)」あるいは「特許の話(DB)」を試す場合には事前にそれららのインデックスを作成し、ロードしておく必要があります。詳しくは 擬似的なデーターベースのインデックス作成 の解説を参照してください。
Copyright(C) 2000-2009 Scripts Lab. Inc.