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;
}