groonga/groonga — pull request #214 by kou (2014-10-10 10:43:52+00:00)
Title: Improve token filter API

@daijiro トークンフィルターのコールバックのAPIをgrn_procの汎用のコールバック関数ではなく、トークンフィルター専用のコールバック関数にすることで、トークンフィルターを書く人がわかりやすいAPIにしたいのですが、どうでしょうか！？

トークンフィルターを作る人の使い勝手は https://github.com/groonga/groonga/blob/7b1f7a2f620e3ab698c6e0f09e78a8e6048d00ed/plugins/token_filters/stop_word.c という感じになります。

ポイントは次の通りです。

* grn_ctx_pop()ではなく引数で情報を渡す
* これによりどんな情報を使えるかがわかりやすくなることを期待しています。
* トークンの情報（トークン文字列とステータスを表すフラグ）をばらばらに渡すのではなく、1つの構造体（grn_token）にまとめて渡す
* これにより今後追加の情報を渡したいときでもAPIを変更せずに対応できる拡張性を狙っています。追加の情報とは、例えば品詞情報などのトークンに付属するメタデータがありえるのではないかと考えています。
* 現在、grn_tokenという名前は内部で使われているので、内部で使っている構造体の名前をgrn_token_cursorに変更しています。現在のgrn_tokenはgrn_token_nextというAPIを持っており、これはGroonga内ではgrn_table_cursorなどと同じAPIだったので、grn_token_cursorにしました。

確認おねがいします！