Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

indexer library (Re: rbnamazu-0.1)



knok@xxxxxxxxxxxxx (NOKUBI Takatsugu) wrote:

>>> mknmz はどうしよう。今のコードは保守不能に近いので、書き直し
>>> たいと思ってはいるのだけど。安部さんが Cで書き直すという話が
>>> ありましたが、どうします? 
>>> 
>>> # Rubyで mknmz を書き直すことには興味ありません? > 大島さん :-)
>
>  indexer も楽に呼びだせるような仕組みがあると嬉しい人は多そうですよね。
>そういう点ではやはり C でコーディングした方が...

検索エンジンは高速性が求められるから、ライブラリとして使える
と嬉しいけど indexer はどうだろう。どうせ遅いんだから、コマ
ンド呼び出しでもいい気がします。

あ、そうか。実際はコマンド呼び出しなんだけど、それを隠蔽する
インターフェイスをライブラリとして用意すればいいのか。駄目?

こんな感じ:

	nmz_idxr foo = nmz_new_idxr();

	// インデックス作成の対象を設定
	nmz_idxr_add_target(foo, "/foo/bar");
	nmz_idxr_add_target(foo, "/baz/qux");

	// 必要に応じてオプションを設定
	nmz_idxr_set_options(foo, "-h");

	// 進捗状況のメーターを表示するための関数 
	// show_progress_meter を hook として登録
	// (進捗状況は mknmz のメッセージから得られる)
	nmz_idxr_set_progress_hook(foo, show_progress_meter);

	// インデックス作成開始!
	// 実は内部で popen で mknmz を呼び出す。わっはっは
	nmz_idxr_start(foo);

	nmz_idxr_destroy(foo);


># などと口で言うだけで、最近なにも作業してないのでこれからはもうちょっ
># と頑張ります。手始めに Solaris の gettext 問題をちゃんと把握しよう...

助かります。

-- Satoru Takabayashi