Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: rbnamazu CVS
Takayuki YAMAGUCHI <tyamaguchi@xxxxxxxxxxxxxxx> wrote:
>>* ssh の公開鍵 (ssk-keygen で生成)
>>* 希望する account 名
>>* (あれば) PGP/GnuPG の公開鍵 (初期パスワードをメールで送るため)
どうせ ssh 経由でしかログインでいないので /etc/shadow には
"*" を設定すればいいと思います。UNIXのパスワードが必要なのは
sudoers だけですよね。
>rbnamazu-jaの方は、まだいいかな?と思っています。
>rbnamazuとnamazu本体で話が混乱してくるようなことが起きる
>ようでしたら、分離しましょう。
>#野望ですが、rbnamazuの開発の中で設計に関しても積極的に
>#議論したいということもあって、そういうのがrbnamazuだけで
>#閉じてしまうのはもったいないかなと。
libnmz を再設計からやり直そう、と以前から思っているのですが、
なかなか実行にうつせません。 rbnamazu の開発を通して libnmz
の整理ができれば、と思います。
# Namazu全体を書き直したい、という野望もあります。夏休みにな
# ればできるかな? perl が嫌になってきたので mknmz は別の言語
# で書き直すかも。:-)
libnmz の再設計に関する以前の議論は
<http://www.namazu.org/ml/namazu-devel-ja/thrd3.html#00267>
から参照できます。
メイル末尾に当時考えたコードを添付しておきます。
>>必要とあれば www.namazu.org に BTS (Bug Tracking System) を
>>作れます。 contributer からの意見は BTS 経由でもらえばいいの
>>ではないかと。
>
>それでは、お願いします。
rbnamazu の Webペイジの準備ができたら安部さんが作ってくれる
と思います。
>>www.namazu.org に Webペイジを置きませんか? www.namazu.org の
>>計算機はかなり自由に使えます。株式会社ネットビレッジネット
>><http://www.netvillage.co.jp/> 様のおかげです。
>
>あ、いいですか?
>それでは、お願いします。
URI を決めてくださいな。例:
* <http://www.namazu.org/ruby/>
* <http://www.namazu.org/rbnamazu/>
* <http://www.namazu.org/ruby-namazu/>
* <http://ruby.namazu.org/>
p.s.
明後日の仕事 (論文を紹介する当番) が終われば、やっと一息つけ
ます。が、 Lisp熱に冒されているので、しばらく Namazu には戻
れないかもしれません。充電期間ということで許してくださいな。
-- Satoru Takabayashi
#include <libnmz.h>
int
main()
{
// クエリーは単なる文字列 (でいいの?)
// nmz_idxset_search の中でパーズするのと
// 外でパーズして渡すのとどちらがいいのだろう?
// 外でパーズするなら
// nmz_query *q = nmz_query_new("foo and bar");
// といった感じかな?
char *query = "foo and bar";
// 設定ファイルを読み込む
nmz_config *conf = nmz_config_new("/foo/bar/namazurc");
// インデックスの集合を扱うオブジェクトを生成する
nmz_idxset *foo = nmz_idxset_new(conf);
// 検索結果用のオブジェクト
nmz_doclist *result = nmz_doclist_new(conf);
// 検索対象のインデックスを登録する (重複は除去される)
nmz_idxset_insert(foo, "/foo/bar/Namazu/idx1");
nmz_idxset_insert(foo, "/foo/bar/Namazu/idx2");
nmz_idxset_insert(foo, "/foo/bar/Namazu/idx3");
// 検索結果 (ヒットした文書のリスト) を得る
result = nmz_idxset_search(foo, query);
// 同じインデックス集合に対して別のクエリーで検索できる
// result2 = nmz_idxset_search(foo, query2);
// 検索結果をソートする (降順)
nmz_doclist_sort(result, NMZ_SORT_BY_SCORE);
// 文書のリストを逆順にする (ソートを昇順にする)
// nmz_doclist_reverse(result);
for (i = 0; i < result->len; i++) {
// 文書のリストから n番目の文書へのポインタを得る
nmz_doc *doc = nmz_doclist_nth_doc(result, i);
// 検索結果表示用の要約を HTML形式で取り出す (NMZ.result に応じて)
char *summary = nmz_idxset_get_html_summary(foo, doc, i);
// plain text の形式で取り出すことも可能
// char *summary = nmz_idxset_get_plain_summary(foo, doc, i);
// 検索結果を表示する
printf("%s\n", summary);
}
// 後片づけ
// nmz_idxset_destroy(foo);
// nmz_doclist_destroy(result);
return 0;
}