Hyper Estraier

Hyper Estraier（ハイパーエストレイヤ）は、日本で開発された全文検索エンジンのライブラリである。ライセンスはLGPLで提供されている。
概要.
N-gram法を拡張したインデックス方式であるN.M-gram法を採用し、どの言語でも洩れの無い検索が可能になっている。また、MeCabを用いて形態素解析の結果を用いた処理を行うことが出来る。作者は平林幹雄。
バックエンドには、同じ作者によるQDBMを採用、データベースに対するgathererとsearcher、独自のテキスト分析システムで構成される。
文書が持つ複数の属性をインデックスに保存することができる。属性を用いた検索と、全文検索を併用することができる、実用的な全文検索エンジンである。類似文章検索の機能もある。
などが同梱されている。
同作者によるEstraierという全文検索エンジンが存在する。Estraierは形態素解析（わかち書き）に基づいたインデックスを採用している。Hyper EstraierはEstraierを開発した経験に基づいて、新しく開発された全文検索エンジンである。また、Estraierの前は、Snatcherという名称で作成していた。
N.M-gram法.
N.M-gram法とは、N-gram法を拡張したインデックスのデータ構造である。長さNの文字列と、それに後続する長さMの文字列をキーとしたハッシュ値とがペアとして転置インデックスに保存される。
N.M-gram法を採用することにより、トークンの出現位置情報を持つことなしに、N文字を超える長さの文字列を検索することができる。
Hyper Estraierでは、N=2, M=2でインデックスが作成される。これを2.2-gram法と呼ぶ。
コマンドツール.
estcmdというコマンドラインツールが付属する。estcmdにサブコマンドをあたえることで、インデックスの作成・更新・検索などの操作を行うことができる。主なコマンドを挙げる。
フィルタ.
フィルタと呼ばれるテキスト抽出プログラムを利用することにより、プレインテキスト以外のフォーマットで記録されたファイルをインデックスすることができる。現在、公式ではMS OfficeやPDFなどのフィルタを配布している。
P2P機能.
インデックスを分散して配置することによって、大規模な検索システムを構築することが可能になる。
P2Pの機能を利用する際には、ノードマスタと呼ばれる統括的なプロセスを利用し、そのプロセスが個別のノードサーバーを管理する。アプリケーションは、ノードサーバーと連携し、そのノードサーバーが個別に個々のサーバーと連携することによって、それほど難易度の無いP2P方式での検索が可能になっている。また、このノードサーバーの連携の際に「信頼度」を設定することが出来、これにより、より精度の高い検索が可能になっている。
ノード間の通信プロトコルはHTTPである。
クローラ.
Hyper Estraierには、各コマンドのほかに、estwaverと呼ばれるウェブのクローラが付属している。このクローラを使うことで、他サーバーで公開されている情報に対するインデックスを作成することができる。
プログラミングとバインディング.
Hyper Estraierには、CによるAPIを経由して操作することができる。主として、文書の属性を扱うもの、検索条件を扱うもの、データベースを扱うもの、という三つで構成されている。
また、Java、Perl、Ruby、Pythonといった各言語のバインディングも付属し、好きな言語でHyper Estraierを利用できる。
Hyper Estraierを利用したアプリケーション.
ほかにも、Slashdot日本語版や商品検索SURE-SHOTなどが検索エンジンとして採用するなど、いくつかのサイトで検索エンジンとして利用されている。