|
 |
|

コンポーネントとしての検索エンジン (PHP, Java, Perl から)
■検索エンジンがコンポーネント形態である利点
(既存の検索エンジン)
既存検索エンジンはそれ自体がアプリケーションでありシステムであることが多く、アプリケーションからエンジンを使うのに各種制約があります。
たとえば検索エンジンが表示処理あるいは表示のためのHTML出力処理を抱えていると、アプリケーション独自の表示をおこなわせるのが難しくなったり画面設計に制約が生じます。
あるいは、インデックス作成プログラムが独立していて独自の管理者向け対話画面を持っていたりすると、アプリケーション独自のインデックス作成ツールを作るわけにはいかなくなります。
たとえば 「"なまず"を使えばソースコードごと入手できるから、デザインは自由に変更できる」 というような考えも確かにあります。しかし検索エンジン自体に手を入れるということは、自社でおこなうにしろ、外注するにしろ、開発期間と費用がかさみます。
(MindSearch)
MindSearchはコンポーネントであり、すべての機能はアプリケーションからAPIを通じて実行するよう設計されています。
自らウィンドゥを開いたり、ヒット情報にHTMLタグを付けて返すことはありません。自らの存在を主張せず、もっぱらバックグラウンドで(Windowsではサービス、UNIXではデーモン)動作します。インデックス作成のようなツール的作業もスクリプトから行なうようになっています。このようにすることでアプリケーションの設計の自由度が飛躍的に高まります。検索エンジンのソースコードを眺めるようなことは不用で、エンジンはブラックボックスとして扱うことができます。

PHP, Java, Perl からのプログラミング
- アプリケーションからMindSearchのAPIを簡単に利用できるよう、Javaクラスライブラリ, Perlライブラリ, PHPライブラリ が添付されます。エンジンとアプリケーションはソケットを通じて通信を行ないますが、これらのライブラリが通信回りを隠蔽するため、ソケットプログラミングの知識が無くても簡単にソフト開発を行うことができます。
・他の開発言語を使う場合であってもソケットプログラミングの知識さえあれば簡単にMindSearchと接続できます。
- ライブラリは非常にシンプルです
MindSearchとの接続、MindSearchとの切断、スクリプトの送信、レスポンスの受信、・・この4種の関数を使い、あらゆる操作を行なえるようになっています。
- MindSearch内部にセッション管理機構を持ちます。ブラウザに最初の画面を表示し、次にまた続きの検索結果を表示させるような場合、MindSearch自身の持つセッション管理機構を利用できるため、アプリケーションの負担が軽減されます。
- 検索結果の複数のヒット情報のうち、任意の番号の位置に「シーク」し、任意の数だけ結果を取得することができます。たとえばWebアプリケーションを開発する場合、1ページ表示する件数や前後のページ移動することなど、検索エンジン主導ではなく、アプリケーション主導でおこなうことができます。
