[groonga-dev,03888] Re: [C-API] grn_rset_recinfo とかを公開してほしい

Back to archive index

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 



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