民芸的プログラミング 〜ソフトウェア開発日記〜

アクセスカウンタ

zoom RSS サーバーにソフトを入れずに全文検索

<<   作成日時 : 2009/01/04 22:49   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

何か月も前にこのネタを扱ったのだが、その時は結論が出ずじまいだった。
それが、今日になってやっと一つの答えが出た。

元データのテキスト量にもよるが、電子百科事典くらいなら、何とかいけそうだ。

一般的に、イントラネットなどで全文検索のシステムを構築しようとすれば、Namazu や Lucene などの全文検索ソフトウェアをサーバーにインストールして使うことになる。
しかし、状況によっては、サーバー側にこのようなソフトウェアをインストールできないこともある。いや、結構ある。
サーバー管理が外注化されていてソフトを一本入れるだけでも何十万円という費用を請求されるとか、そもそもソフトをインストールしたくないとか。

私はお仕事の関係上、電子百科事典のようなものをお客様に使ってもらいたいのだが、こういった壁にはばまれ続けてきた。
クライアントサイドの Javascript だけでどうにか全文検索を実現できればこの問題は解決するのだが。

書籍のデータを一気にクライアントにダウンロードして、Javascript でベタに grep 検索というのは、お客さんのネットワークに負荷がかかるので好ましくないし、パフォーマンスも期待できない。
Namazu のように事前にインデックスを作成する方式が理想なのだが、文書量が増えてくると、このインデックスの大きさも洒落にならない。Javascript ではバイナリデータを扱えないという制約があるので、下手をすると、インデックスのほうが元のテキストデータよりもサイズが大きくなったりする。

と、あれこれ考えているうちに一つの答えが出てきた。
HTTP 1.1 の Range ヘッダを使ってインデックスの必要部分だけを読めば、ネットワークに負荷がかからない。
具体的には...

それほど秘密にする話でもないのだが、一応、会社と相談してから、実装例は後日紹介しようと思う。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
サーバーにソフトを入れずに全文検索 民芸的プログラミング 〜ソフトウェア開発日記〜/BIGLOBEウェブリブログ
文字サイズ:       閉じる