[Groonga-commit] groonga/groonga [master] suggest: learn_ctx -> learner

アーカイブの一覧に戻る

null+****@clear***** null+****@clear*****
2012年 3月 12日 (月) 10:13:28 JST


Kouhei Sutou	2012-03-12 10:13:28 +0900 (Mon, 12 Mar 2012)

  New Revision: 603d922a288fb80dcf35506984d4b6eb4d12cf68

  Log:
    suggest: learn_ctx -> learner

  Modified files:
    plugins/suggest/suggest.c

  Modified: plugins/suggest/suggest.c (+54 -54)
===================================================================
--- plugins/suggest/suggest.c    2012-03-12 09:39:33 +0900 (fe16cfe)
+++ plugins/suggest/suggest.c    2012-03-12 10:13:28 +0900 (c9942ef)
@@ -55,7 +55,7 @@ typedef struct {
   grn_obj *pairs_freq0;
   grn_obj *pairs_freq1;
   grn_obj *pairs_freq2;
-} grn_suggest_learn_ctx;
+} grn_suggest_learner;
 
 static int
 grn_parse_suggest_types(const char *nptr, const char *end)
@@ -552,39 +552,39 @@ command_suggest(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_dat
 }
 
 static void
-learn_ctx_init(grn_ctx *ctx, grn_suggest_learn_ctx *learn_ctx,
-               grn_obj *seq, grn_obj *post_item, grn_obj *pairs)
+learner_init(grn_ctx *ctx, grn_suggest_learner *learner,
+             grn_obj *seq, grn_obj *post_item, grn_obj *pairs)
 {
   grn_id events_id, event_types_id;
   grn_obj *seqs, *events, *items;
 
-  learn_ctx->seqs = seqs = grn_ctx_at(ctx, GRN_OBJ_GET_DOMAIN(seq));
-  learn_ctx->seqs_events = grn_obj_column(ctx, seqs, CONST_STR_LEN("events"));
-
-  events_id = grn_obj_get_range(ctx, learn_ctx->seqs_events);
-  learn_ctx->events = events = grn_ctx_at(ctx, events_id);
-  learn_ctx->events_item = grn_obj_column(ctx, events, CONST_STR_LEN("item"));
-  learn_ctx->events_type = grn_obj_column(ctx, events, CONST_STR_LEN("type"));
-  learn_ctx->events_time = grn_obj_column(ctx, events, CONST_STR_LEN("time"));
-
-  event_types_id = grn_obj_get_range(ctx, learn_ctx->events_type);
-  learn_ctx->event_types = grn_obj_column(ctx, events, CONST_STR_LEN("time"));
-
-  learn_ctx->items = items = grn_ctx_at(ctx, GRN_OBJ_GET_DOMAIN(post_item));
-  learn_ctx->items_freq = grn_obj_column(ctx, items, CONST_STR_LEN("freq"));
-  learn_ctx->items_freq2 = grn_obj_column(ctx, items, CONST_STR_LEN("freq2"));
-  learn_ctx->items_last = grn_obj_column(ctx, items, CONST_STR_LEN("last"));
-
-  learn_ctx->pairs = pairs;
-  learn_ctx->pairs_pre = grn_obj_column(ctx, pairs, CONST_STR_LEN("pre"));
-  learn_ctx->pairs_post = grn_obj_column(ctx, pairs, CONST_STR_LEN("post"));
-  learn_ctx->pairs_freq0 = grn_obj_column(ctx, pairs, CONST_STR_LEN("freq0"));
-  learn_ctx->pairs_freq1 = grn_obj_column(ctx, pairs, CONST_STR_LEN("freq1"));
-  learn_ctx->pairs_freq2 = grn_obj_column(ctx, pairs, CONST_STR_LEN("freq2"));
+  learner->seqs = seqs = grn_ctx_at(ctx, GRN_OBJ_GET_DOMAIN(seq));
+  learner->seqs_events = grn_obj_column(ctx, seqs, CONST_STR_LEN("events"));
+
+  events_id = grn_obj_get_range(ctx, learner->seqs_events);
+  learner->events = events = grn_ctx_at(ctx, events_id);
+  learner->events_item = grn_obj_column(ctx, events, CONST_STR_LEN("item"));
+  learner->events_type = grn_obj_column(ctx, events, CONST_STR_LEN("type"));
+  learner->events_time = grn_obj_column(ctx, events, CONST_STR_LEN("time"));
+
+  event_types_id = grn_obj_get_range(ctx, learner->events_type);
+  learner->event_types = grn_obj_column(ctx, events, CONST_STR_LEN("time"));
+
+  learner->items = items = grn_ctx_at(ctx, GRN_OBJ_GET_DOMAIN(post_item));
+  learner->items_freq = grn_obj_column(ctx, items, CONST_STR_LEN("freq"));
+  learner->items_freq2 = grn_obj_column(ctx, items, CONST_STR_LEN("freq2"));
+  learner->items_last = grn_obj_column(ctx, items, CONST_STR_LEN("last"));
+
+  learner->pairs = pairs;
+  learner->pairs_pre = grn_obj_column(ctx, pairs, CONST_STR_LEN("pre"));
+  learner->pairs_post = grn_obj_column(ctx, pairs, CONST_STR_LEN("post"));
+  learner->pairs_freq0 = grn_obj_column(ctx, pairs, CONST_STR_LEN("freq0"));
+  learner->pairs_freq1 = grn_obj_column(ctx, pairs, CONST_STR_LEN("freq1"));
+  learner->pairs_freq2 = grn_obj_column(ctx, pairs, CONST_STR_LEN("freq2"));
 }
 
 static int
-learn_for_complete_and_correcnt(grn_ctx *ctx, grn_suggest_learn_ctx *learn_ctx,
+learn_for_complete_and_correcnt(grn_ctx *ctx, grn_suggest_learner *learner,
                                 grn_obj *post_item,
                                 grn_obj *pre_events, grn_obj *pre_item,
                                 uint64_t key_,
@@ -596,7 +596,7 @@ learn_for_complete_and_correcnt(grn_ctx *ctx, grn_suggest_learn_ctx *learn_ctx,
   uint64_t key;
   int r = 0;
 
-  GRN_RECORD_INIT(&pre_type, 0, grn_obj_get_range(ctx, learn_ctx->events_type));
+  GRN_RECORD_INIT(&pre_type, 0, grn_obj_get_range(ctx, learner->events_type));
   GRN_TIME_INIT(&pre_time, 0);
   ep = (grn_id *)GRN_BULK_CURR(pre_events);
   es = (grn_id *)GRN_BULK_HEAD(pre_events);
@@ -607,27 +607,27 @@ learn_for_complete_and_correcnt(grn_ctx *ctx, grn_suggest_learn_ctx *learn_ctx,
     GRN_BULK_REWIND(&pre_type);
     GRN_BULK_REWIND(&pre_time);
     GRN_BULK_REWIND(pre_item);
-    grn_obj_get_value(ctx, learn_ctx->events_type, *ep, &pre_type);
-    grn_obj_get_value(ctx, learn_ctx->events_time, *ep, &pre_time);
-    grn_obj_get_value(ctx, learn_ctx->events_item, *ep, pre_item);
+    grn_obj_get_value(ctx, learner->events_type, *ep, &pre_type);
+    grn_obj_get_value(ctx, learner->events_time, *ep, &pre_time);
+    grn_obj_get_value(ctx, learner->events_item, *ep, pre_item);
     if (GRN_TIME_VALUE(&pre_time) + 60 * GRN_TIME_USEC_PER_SEC < post_time_value) {
       r = (int)((post_time_value - GRN_TIME_VALUE(&pre_time))/GRN_TIME_USEC_PER_SEC);
       break;
     }
     key = key_ + GRN_RECORD_VALUE(pre_item);
-    pair_id = grn_table_add(ctx, learn_ctx->pairs, &key, sizeof(uint64_t),
+    pair_id = grn_table_add(ctx, learner->pairs, &key, sizeof(uint64_t),
                             &added);
     if (added) {
-      grn_obj_set_value(ctx, learn_ctx->pairs_pre, pair_id, pre_item,
+      grn_obj_set_value(ctx, learner->pairs_pre, pair_id, pre_item,
                         GRN_OBJ_SET);
-      grn_obj_set_value(ctx, learn_ctx->pairs_post, pair_id, post_item,
+      grn_obj_set_value(ctx, learner->pairs_post, pair_id, post_item,
                         GRN_OBJ_SET);
     }
     if (GRN_RECORD_VALUE(&pre_type)) {
-      grn_obj_set_value(ctx, learn_ctx->pairs_freq1, pair_id, v1, GRN_OBJ_INCR);
+      grn_obj_set_value(ctx, learner->pairs_freq1, pair_id, v1, GRN_OBJ_INCR);
       break;
     } else {
-      grn_obj_set_value(ctx, learn_ctx->pairs_freq0, pair_id, v1, GRN_OBJ_INCR);
+      grn_obj_set_value(ctx, learner->pairs_freq0, pair_id, v1, GRN_OBJ_INCR);
     }
   }
   GRN_OBJ_FIN(ctx, &pre_type);
@@ -637,15 +637,15 @@ learn_for_complete_and_correcnt(grn_ctx *ctx, grn_suggest_learn_ctx *learn_ctx,
 }
 
 static void
-learn_for_suggest(grn_ctx *ctx, grn_suggest_learn_ctx *learn_ctx,
+learn_for_suggest(grn_ctx *ctx, grn_suggest_learner *learner,
                   grn_id post_item_id,
                   uint64_t key_, grn_obj *pre_item,
                   grn_obj *post_item, grn_obj *v1)
 {
   char keybuf[GRN_TABLE_MAX_KEY_SIZE];
-  int keylen = grn_table_get_key(ctx, learn_ctx->items, post_item_id,
+  int keylen = grn_table_get_key(ctx, learner->items, post_item_id,
                                  keybuf, GRN_TABLE_MAX_KEY_SIZE);
-  grn_token *token = grn_token_open(ctx, learn_ctx->items, keybuf, keylen, 1);
+  grn_token *token = grn_token_open(ctx, learner->items, keybuf, keylen, 1);
   if (token) {
     grn_id tid;
     while ((tid = grn_token_next(ctx, token)) && tid != post_item_id) {
@@ -653,16 +653,16 @@ learn_for_suggest(grn_ctx *ctx, grn_suggest_learn_ctx *learn_ctx,
       int added;
       grn_id pair_id;
       key = key_ + tid;
-      pair_id = grn_table_add(ctx, learn_ctx->pairs, &key, sizeof(uint64_t),
+      pair_id = grn_table_add(ctx, learner->pairs, &key, sizeof(uint64_t),
                               &added);
       if (added) {
 	GRN_RECORD_SET(ctx, pre_item, tid);
-	grn_obj_set_value(ctx, learn_ctx->pairs_pre, pair_id,
+	grn_obj_set_value(ctx, learner->pairs_pre, pair_id,
                           pre_item, GRN_OBJ_SET);
-	grn_obj_set_value(ctx, learn_ctx->pairs_post, pair_id,
+	grn_obj_set_value(ctx, learner->pairs_post, pair_id,
                           post_item, GRN_OBJ_SET);
       }
-      grn_obj_set_value(ctx, learn_ctx->pairs_freq2, pair_id, v1, GRN_OBJ_INCR);
+      grn_obj_set_value(ctx, learner->pairs_freq2, pair_id, v1, GRN_OBJ_INCR);
     }
     grn_token_close(ctx, token);
   }
@@ -680,34 +680,34 @@ learn(grn_ctx *ctx, grn_obj *post_event, grn_obj *post_type, grn_obj *post_item,
   grn_id seq_id = GRN_RECORD_VALUE(seq);
   int64_t post_time_value = GRN_TIME_VALUE(post_time);
   if (post_event_id && post_item_id && seq_id) {
-    grn_suggest_learn_ctx learn_ctx;
-    learn_ctx_init(ctx, &learn_ctx, seq, post_item, pairs);
+    grn_suggest_learner learner;
+    learner_init(ctx, &learner, seq, post_item, pairs);
     GRN_UINT32_INIT(&v1, 0);
     GRN_UINT32_SET(ctx, &v1, 1);
-    GRN_RECORD_INIT(&pre_events, 0, grn_obj_id(ctx, learn_ctx.events));
-    grn_obj_set_value(ctx, learn_ctx.items_freq, post_item_id,
+    GRN_RECORD_INIT(&pre_events, 0, grn_obj_id(ctx, learner.events));
+    grn_obj_set_value(ctx, learner.items_freq, post_item_id,
                       &v1, GRN_OBJ_INCR);
-    grn_obj_set_value(ctx, learn_ctx.items_last, post_item_id,
+    grn_obj_set_value(ctx, learner.items_last, post_item_id,
                       post_time, GRN_OBJ_SET);
     if (post_type_id) {
       uint64_t key_ = ((uint64_t)post_item_id) << 32;
       grn_id items_id;
       grn_obj pre_item;
-      grn_obj_set_value(ctx, learn_ctx.items_freq2, post_item_id,
+      grn_obj_set_value(ctx, learner.items_freq2, post_item_id,
                         &v1, GRN_OBJ_INCR);
-      grn_obj_get_value(ctx, learn_ctx.seqs_events, seq_id, &pre_events);
-      items_id = grn_obj_get_range(ctx, learn_ctx.events_item);
+      grn_obj_get_value(ctx, learner.seqs_events, seq_id, &pre_events);
+      items_id = grn_obj_get_range(ctx, learner.events_item);
       GRN_RECORD_INIT(&pre_item, 0, items_id);
-      r = learn_for_complete_and_correcnt(ctx, &learn_ctx,
+      r = learn_for_complete_and_correcnt(ctx, &learner,
                                           post_item, &pre_events, &pre_item,
                                           key_, post_time_value, &v1);
-      learn_for_suggest(ctx, &learn_ctx,
+      learn_for_suggest(ctx, &learner,
                         post_item_id, key_, &pre_item, post_item, &v1);
       GRN_OBJ_FIN(ctx, &pre_item);
       GRN_BULK_REWIND(&pre_events);
     }
     GRN_RECORD_SET(ctx, &pre_events, post_event_id);
-    grn_obj_set_value(ctx, learn_ctx.seqs_events, seq_id,
+    grn_obj_set_value(ctx, learner.seqs_events, seq_id,
                       &pre_events, GRN_OBJ_APPEND);
     GRN_OBJ_FIN(ctx, &pre_events);
     GRN_OBJ_FIN(ctx, &v1);




Groonga-commit メーリングリストの案内
アーカイブの一覧に戻る