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.");
}