Naoya Murakami
visio****@gmail*****
2014年 5月 23日 (金) 22:05:56 JST
村上です。
わざわざ詳細な解説ありがとうございます!すごく勉強になります。
> 戻り値はgrn_obj *じゃなくてgrn_proc_typeでよいです!
>
> そうすると、procがNULLのときになにを返すの!?となると思うの
> で、grn_proc_typeにGRN_PROC_INVALIDを0で定義しておいてそれを
> 返すのがいいと思います!
>
修正しました!
> > 一応、トークナイザ名とノーマライザ名の一覧を取得できましたが、
> > あまりセンスがよくない気がします。
>
> はい、そうですね!
>
ですよね!!
全体像を理解できていないので、末端から小手先でいじることしか
できていませんでした。すいません。組み込みコマンドでは、それ
では、いけませんよね。
こういうときは、grn_db(外部からみるとこれもgrn_obj)に対し
> てgrn_table_cursorを回します。なので、こんな感じになるんじゃ
> ないかと思います。
>
なるほど!table_listのコマンドを参考にすればよかったんですね!
今回は、grn_procなのでgrn_ctxを手動でなめるぐらいしかないの
かなぁと思っちゃいました。
grn_dbの配下には、grn_typeとgrn_tableとgrn_procとかが
いて、全部grn_table_cursor_openで動かせて、
obj->header.typeをみるとgrn_objの種類が判定できるんですね!
> 戻り値は、今は["NormalizerAuto", "NormalizerNFKC51"]のように
> 名前の配列になっていますが、
>
> [
> {"name": "NormalizerAuto"},
> {"name": "NormalizerNFKC51"}
> ]
>
> のようにオブジェクトにしておいた方がいいかなぁと思います。理
> 由は、ノーマライザー毎に新しい情報を追加したいときにAPIを変
> えずに対応できるからです。
>
> 今は、名前だけで十分だとは思うんですが、もしかしたら、どのプ
> ラグインが追加したのか、みたいな情報もあると助かることがある
> かも?とか思いました。
>
上記を考慮しなおして書き直して、(といっても、ほとんど書いて
いただいている通りですが)Pull Requestをしました。
https://github.com/groonga/groonga/pull/171
よければ、ご検討ください。
(ドキュメントの修正が一番大変でした。。すいません、翻訳ファイル
がうまく効かせられず、まだ追加できていません。。今後、うまくでき
そうなら追加します。)
以上、よろしくお願いします。