Naoya Murakami
visio****@gmail*****
2016年 2月 1日 (月) 10:07:59 JST
村上です。 この方法以前やろうとして、一回検索した後にスコアいじるのはできて、 追加はできなかったような気がしました。 今、Cで書いてみるとセグメントエラーになりました。 以下のソースでなにか間違ってますか? https://gist.github.com/naoa/f42fd362497d31d71242 よろしくお願いします。 2016年1月31日 16:19 Kouhei Sutou <kou****@clear*****>: > 須藤です。 > > In <CANM+HhdF_=UDZgtOyb1zU+1_JmmnCy_OD+2J****@mail*****> > "[groonga-dev,03883] [C-API] grn_rset_recinfo とかを公開してほしい" on Sat, 30 Jan > 2016 09:59:58 +0900, > Naoya Murakami <visio****@gmail*****> wrote: > > > 以下のようにしてscoreをいれたいことがよくあるのですが、 > > grn_rset_recinfoを再定義して使っています。 > > > > grn_rset_recinfo *ri; > > if (grn_hash_add(ctx, (grn_hash *)hash, &id, sizeof(grn_id), (void > > **)&ri, NULL)) { > > ri->score = score; > > } > > > > grn_rset_recinfoを公開してもよければ楽になるのですがいかがでしょうか? > > 一応、_scoreのアクセサーを作ってgrn_obj_set()するのが正規の > 手順なんですが、それだとアレですかねぃ。 > > grn_obj *score_accessor; > grn_obj score_buffer; > score_accessor = grn_obj_column(ctx, hash, > GRN_COLUMN_NAME_SCORE, > GRN_COLUMN_NAME_SCORE_LEN); > GRN_FLOAT_INIT(&score_buffer, 0); > GRN_FLOAT_SET(ctx, &score_buffer, score); > grn_obj_set_value(ctx, score_accessor, id, &score_buffer, GRN_OBJ_SET); > GRN_OBJ_FIN(ctx, &score_buffer); > grn_obj_close(ctx, &score_accessor); > > > -- > 須藤 功平 <kou****@clear*****> > 株式会社クリアコード <http://www.clear-code.com/> > > Groongaベースの全文検索システムを総合サポート: > http://groonga.org/ja/support/ > パッチ採用 - プログラミングが楽しい人向けの採用プロセス: > http://www.clear-code.com/recruitment/ > リーダブルコードワークショップ: > > http://www.clear-code.com/services/code-reader/readable-code-workshop.html > > _______________________________________________ > groonga-dev mailing list > groon****@lists***** > http://lists.osdn.me/mailman/listinfo/groonga-dev > -------------- next part -------------- HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...Download