[Senna-dev 20] Re: [patch] sen_records_curr_key()

Back to archive index

morit****@razil***** morit****@razil*****
2005年 4月 10日 (日) 13:25:23 JST


> ドキュメントとsenna.hにはあるけど実装されていない
>   const void *sen_records_curr_key(sen_records *records);
> を実装してみました。

うわーすみませんすみません‥。
仕様だけあって未実装の関数がいくつかあるのです。
(→ 未実装のものが分かるようにドキュメントにも反映します)

APIの仕様自体、まだちょっと迷っている面があります。
(直交性があって、必要十分で、分かりやすいAPIを目指しているのですが、
なかなか難しい‥。)

現在の仕様では、類似文書検索や関連語抽出等を実装するための機能が欠けている
のに、一部の機能については(小山さんが指摘するように)やや冗長なのです。

パッチ拝見しました。コーディングスタイルも揃えていて頂いて恐縮まくりです。

概ね正しく動作すると思われますが、sen_set_cursor_open()して、
最初のsen_set_cursor_next()する前に、sen_set_cursor_curr()を呼び出すと、
不正な値を返す可能性があります。
(sen_set_cursor.currは正しいエントリーを指していない可能性がある)

> ただ書きながら思ったのですが、lib/index.cとlib/set.cでnext系
> と似たようなコードが重複して存在することになってしまうので、
> API的に無しにするのもアリかなとも思いました。

そうなんですよね‥。sen_recordsに関しては sen_records_curr_score() との
バランスを考えて sen_records_curr_key() を設けてみたのですが、
sen_setには同様の操作はそぐわないかも知れません。

とりあえず、sen_records_curr_key() については、sen_records_next()の戻り値を
_sen_records構造体に保存したものを返すようにしました。
sen_records_next()実行前にsen_records_curr_key()を実行するとNULLが返ります。

(せっかくのパッチなのに適用できずすみません)

> を実行する必要がありますよね。この点ドキュメントの更新、ま
> たはsen_index_open()等で自動的にcallするなどして頂けたりす
> ると嬉しいです。
> # 最初忘れててハマりました。

すみません!! とりいそぎドキュメントに反映しました。

> 重要ではないのですが test/Makefile.am で /usr/lib/libmecab.la
> を直接指定しているのは何故ですか?

意味ないです(^^) 取ります。

--
morita



Senna-dev メーリングリストの案内
Back to archive index