Hyper Estraier

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索
Hyper Estraier
開発元 平林幹雄
最新版 1.4.13 / 2007年12月24日
対応OS クロスプラットフォーム
種別 全文検索
ライセンス LGPL
公式サイト 全文検索システム Hyper Estraier
テンプレートを表示

Hyper Estraier(はいぱー・えすとれいや)は、日本で開発された全文検索エンジンライブラリである。ライセンスはLGPLで提供されている。

概要[編集]

N-gram法を拡張したインデックス方式であるN.M-gram法を採用し、どの言語でも洩れの無い検索が可能になっている。また、MeCabを用いて形態素解析の結果を用いた処理を行うことが出来る。作者は平林幹雄

バックエンドには、同じ作者によるQDBMを採用、データベースに対するgathererとsearcher、独自のテキスト分析システムで構成される。

文書が持つ複数の属性をインデックスに保存することができる。属性を用いた検索と、全文検索を併用することができる、実用的な全文検索エンジンである。類似文章検索の機能もある。

  • Hyper EstraierのAPIを利用したコマンド群
  • Webブラウザを通じて検索を行うためのCGI
  • 複数台のサーバーのP2Pによる分散処理機能。これにより1000万件以上の超大規模インデックスに対応。
  • ウェブクローラー。類似度優先による巡回機能がある。

などが同梱されている。

同作者による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にサブコマンドをあたえることで、インデックスの作成・更新・検索などの操作を行うことができる。主なコマンドを挙げる。

create
インデックスを作成する。その際に新しい属性などを付加することができる。
edit
属性の更新を行う。
list
インデックスにある文書のリストを作成する。
gather
既にあるインデックスに新しいデータを追加する。
search
指定されたインデックスから、検索をおこなう。この際、出力形式などを指定することができる。

フィルタ[編集]

フィルタと呼ばれるテキスト抽出プログラムを利用することにより、プレインテキスト以外のフォーマットで記録されたファイルをインデックスすることができる。現在、公式ではMS OfficePDFなどのフィルタを配布している。

P2P機能[編集]

インデックスを分散して配置することによって、大規模な検索システムを構築することが可能になる。

P2Pの機能を利用する際には、ノードマスタと呼ばれる統括的なプロセスを利用し、そのプロセスが個別のノードサーバーを管理する。アプリケーションは、ノードサーバーと連携し、そのノードサーバーが個別に個々のサーバーと連携することによって、それほど難易度の無いP2P方式での検索が可能になっている。また、このノードサーバーの連携の際に「信頼度」を設定することが出来、これにより、より精度の高い検索が可能になっている。

ノード間の通信プロトコルはHTTPである。

クローラ[編集]

Hyper Estraierには、各コマンドのほかに、estwaverと呼ばれるウェブのクローラが付属している。このクローラを使うことで、他サーバーで公開されている情報に対するインデックスを作成することができる。

プログラミングとバインディング[編集]

Hyper Estraierには、CによるAPIを経由して操作することができる。主として、文書の属性を扱うもの、検索条件を扱うもの、データベースを扱うもの、という三つで構成されている。

また、Java、Perl、Ruby、Pythonといった各言語のバインディングも付属し、好きな言語でHyper Estraierを利用できる。

Hyper Estraierを利用したアプリケーション[編集]

ほかにも、Slashdot日本語版や商品検索SURE-SHOTなどが検索エンジンとして採用するなど、いくつかのサイトで検索エンジンとして利用されている。

外部リンク[編集]