« 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セット
自宅 (夜)
うどん