[Groonga-commit] groonga/groonga [master] suggest command returns hash

Back to archive index

null+****@clear***** null+****@clear*****
2010年 8月 27日 (金) 15:50:33 JST


Daijiro MORI	2010-08-27 06:50:33 +0000 (Fri, 27 Aug 2010)

  New Revision: e42f66365c1ee106af0965023ba32e6fadc99c49

  Log:
    suggest command returns hash

  Modified files:
    doc/ja/source/commands/suggest.txt
    modules/suggest/suggest.c

  Modified: doc/ja/source/commands/suggest.txt (+5 -1)
===================================================================
--- doc/ja/source/commands/suggest.txt    2010-08-27 04:24:57 +0000 (846bd7b)
+++ doc/ja/source/commands/suggest.txt    2010-08-27 06:50:33 +0000 (c13e351)
@@ -62,7 +62,11 @@ json形式
 
 ::
 
- [["候補1", 候補1のスコア], ["候補2", 候補2のスコア], ...]
+ {"タイプ1":[["候補1", 候補1のスコア], ["候補2", 候補2のスコア], ...], ...}
+
+ ``タイプ``
+
+   types引数に指定した値。
 
  ``候補``
 

  Modified: modules/suggest/suggest.c (+12 -3)
===================================================================
--- modules/suggest/suggest.c    2010-08-27 04:24:57 +0000 (6b8a367)
+++ modules/suggest/suggest.c    2010-08-27 06:50:33 +0000 (439bc21)
@@ -301,15 +301,24 @@ command_suggest(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_dat
   grn_obj *table, *col;
   int types = grn_parse_suggest_types(GRN_TEXT_VALUE(VAR(0)), GRN_BULK_CURR(VAR(0)));
   if ((table = grn_ctx_get(ctx, TEXT_VALUE_LEN(VAR(1))))) {
-    if (types & 1) {
+    GRN_OUTPUT_MAP_OPEN("RESULT_SET", -1);
+    if (types & COMPLETE) {
       if ((col = grn_obj_column(ctx, table, TEXT_VALUE_LEN(VAR(2))))) {
+        GRN_OUTPUT_CSTR("COMPLETE");
         complete(ctx, table, col, VAR(3));
       } else {
         ERR(GRN_INVALID_ARGUMENT, "invalid column.");
       }
     }
-    if (types & 2) { correct(ctx, table, VAR(3)); }
-    if (types & 4) { suggest(ctx, table, VAR(3)); }
+    if (types & CORRECT) {
+      GRN_OUTPUT_CSTR("CORRECT");
+      correct(ctx, table, VAR(3));
+    }
+    if (types & SUGGEST) {
+      GRN_OUTPUT_CSTR("SUGGEST");
+      suggest(ctx, table, VAR(3));
+    }
+    GRN_OUTPUT_MAP_CLOSE();
   } else {
     ERR(GRN_INVALID_ARGUMENT, "invalid table.");
   }




Groonga-commit メーリングリストの案内
Back to archive index