« 2005年05月28日 | メイン | 2005年05月30日 »

2005年05月29日

Hyper Estraier をお試し中

N-Gram 方式を採用している Hyper Estraier を試しています。僕は、漏れが無い検索方法が大好きなのです。それは、スコアでソートよりも日付でソートの方が好きだからなのかもしれません。なんでもかんでも、日付でソートと言うわけでもないですが。

Hyper Estraier を試している理由としては、単に Rast が入らなかったというのもあります。入るだろうけど、なんどもエラーを見ながら ./configure の引数をなおすのがだるくなったというのが本音。

とはいっても、僕の中では、もともと Hyper Estraier が優先度トップでしたが。

早速、インデキシングを行い、検索してみました。30万件くらいだったらかなり高速に検索できました。なので、調子乗って 120万件 ほどインデキシングを行っています。が、めちゃくちゃ時間が掛かりそうな予感。

Hyper Estraier が良かったのは、文書ドラフト(中間ファイル)が使えるということです。これがかなり便利。最終的には API を使ってインデキシングにするかもしれないけど、とりあえず便利。

インデックスのサイズの説明について、以下のような記述がありました。

インデックスの最大サイズはおおよそ50GBです。また、対象文書がプレーンテキストの場合、インデックスのサイズは対象文書の容量の半分程度になります。HTMLであれば4分の1程度です。したがって、理論的には、一つのインデックスに登録できる文書の総量は、プレーンテキストなら100GB程度、HTMLなら200GB程度ということになります。

文書ドラフトで試してみたところ、元ファイルの3倍くらいになった。なんでだろう。仕様かな。それとも、僕の設定がおかしいとか。後者の可能性が大。

estseek.cgi をフロントから HTTP でアクセスするような使い方で実装すると思う。

コマンドラインインターフェイスでもWebインターフェイスでも、検索要求を処理する度にデータベースを開いたり閉じたりするのは非効率です(estcmdやestseek.cgiではそうしていますが)。データベースに接続する際にはそれなりのオーバーヘッドがかかるので、同時接続数が増えると負荷が高まり、ひいては検索速度の低下を招きます。したがって、なるべくなら、常駐型のプロセスを実装して、データベースのコネクションを使いまわすようにしてください。

とのことなので、自分で API を使って書く必要があるかも。C は得意じゃないんだけどなー。サンプルを見ながらがんばろう。そういえば estseek.conf はデフォルト設定にして setseek.cgi の引数にて、設定内容を変更できると便利だと思った。インデックスファイルの指定とか。

Hyper Estraier は、早い段階からドキュメントがしっかりしているのでお勧めです。

うちのサーバ(219.117.219.154)は、アクセスを拒否されているみたいだけどorz RSS の取得関係かな。ごめんなさい。

【関連情報】
・Hyper Estraier: 共同体的全文検索システム
 http://hyperestraier.sourceforge.net/
・開発メモ
 http://qdbm.sourceforge.net/mikio/rbbs.cgi
・Rast: 全文検索システム
 http://www.netlab.jp/rast/

18:59 | コメント (4) | トラックバック | Technology

マクドうどん生活

明日から1週間が始まるorz ということで、昨日(28日)の食事内容です。
昼は、のびのびとマクドに行ってきた。何がのびのびなのか不明だが。途中、やっぱりモスの方がいいのではないかと、天使が語っていたのだけど、悪魔は、そのままマクドに行けと。
夜は、自宅でうどん。うどんはいい。パスタよりもいい。食器を洗うのが楽だし。

マクドナルド (昼)
 マックチキンMセット
自宅 (夜)
 うどん

18:54 | コメント (0) | トラックバック | Meal