namazu-dev(ring)


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

Re: namazu current source



# プログラミングのスキル云々は人のこと言えないですから... ^^;

<199909020736.QAA06290@xxxxxxxxxxxxxx>の記事において
satoru-t@xxxxxxxxxxxxxxxxxxさんは書きました。

>> ところで、野首さんはどういった感じの library化を考えています
>> か? どのようにその library を使うのか、大ざっぱなコードを示
>> してもらえます?

  いまいちきれいにまとまっていませんが、Perlでこんな感じにしたいと思っ
てます。

	$idx = new Namazu::index(); # (Namazu::index Object)
	$idx->setindex('/usr/local/namazu/index');
	$idx = new Namazu::index('/usr/local/namazu/index');
	$idx->sort(NMZ_SORT_ASCEND); # NMZ_SORT_DESCEND
	$idx->sort(NMZ_SORT_SCORE);
	$result = $idx->query('a and b'); # (Namazu::result Object)
	($score, $fileid, $dbid, $date) = $result->fetch(1);
	$uri = $result->uri($fieldid, $dbid);

  そのために、Cレベルではこういう感じで処理したいです。

	NAMAZU *nmz;
	nmz = createNAMAZU();
	addIndex(nmz, "/usr/local/namazu/index/foo");
	addIndex(nmz, "/usr/local/namazu/index/bar");
	setSortType(nmz, NMZ_SORT_ASCEND);
	RESULT *result;
	result = Query(nmz, query);
	int resultnum = resultNumber(result);
	for (int i = 0; i < resultnum; i ++) {
		char *uri = getURI(result, i);
		printf("<li>%s\n", uri);
	}

# NAMAZUはインデックス等を保持する構造体
# RESULTは結果を保持する構造体

# ここまで改造するのはかなり大変かも... Objectiveにしなければ作業量も
# 減って簡単でしょうけど。
-- 
野首 貴嗣
E-mail: knok@xxxxxxxxxxxxx (private)
        nokubi@xxxxxxxxx (official)