[Groonga-commit] groonga/groonga at 32c2eb9 [master] schema: support tokenizers

Back to archive index

Kouhei Sutou null+****@clear*****
Mon Oct 19 15:22:17 JST 2015


Kouhei Sutou	2015-10-19 15:22:17 +0900 (Mon, 19 Oct 2015)

  New Revision: 32c2eb9dbc11a123c1c9673e3237efe129e7b0d3
  https://github.com/groonga/groonga/commit/32c2eb9dbc11a123c1c9673e3237efe129e7b0d3

  Message:
    schema: support tokenizers

  Modified files:
    lib/proc.c
    test/command/suite/schema/plugins.expected

  Modified: lib/proc.c (+36 -1)
===================================================================
--- lib/proc.c    2015-10-19 15:21:24 +0900 (9ef9f43)
+++ lib/proc.c    2015-10-19 15:22:17 +0900 (1ea0195)
@@ -7363,13 +7363,48 @@ proc_schema_types(grn_ctx *ctx)
   GRN_OBJ_FIN(ctx, &types);
 }
 
+static void
+proc_schema_tokenizers(grn_ctx *ctx)
+{
+  grn_obj tokenizers;
+  unsigned int i, n;
+
+  GRN_PTR_INIT(&tokenizers, GRN_OBJ_VECTOR, GRN_DB_OBJECT);
+
+  grn_ctx_get_all_tokenizers(ctx, &tokenizers);
+
+  GRN_OUTPUT_CSTR("tokenizers");
+
+  n = GRN_BULK_VSIZE(&tokenizers) / sizeof(grn_obj *);
+  GRN_OUTPUT_ARRAY_OPEN("tokenizers", n);
+  for (i = 0; i < n; i++) {
+    grn_obj *tokenizer;
+
+    tokenizer = GRN_PTR_VALUE_AT(&tokenizers, i);
+
+    GRN_OUTPUT_MAP_OPEN("tokenizer", 1);
+    {
+      char name[GRN_TABLE_MAX_KEY_SIZE];
+      unsigned int name_size;
+      name_size = grn_obj_name(ctx, tokenizer, name, GRN_TABLE_MAX_KEY_SIZE);
+      GRN_OUTPUT_CSTR("name");
+      GRN_OUTPUT_STR(name, name_size);
+    }
+    GRN_OUTPUT_MAP_CLOSE();
+  }
+  GRN_OUTPUT_ARRAY_CLOSE();
+
+  GRN_OBJ_FIN(ctx, &tokenizers);
+}
+
 static grn_obj *
 proc_schema(grn_ctx *ctx, int nargs, grn_obj **args,
             grn_user_data *user_data)
 {
-  GRN_OUTPUT_MAP_OPEN("schema", 2);
+  GRN_OUTPUT_MAP_OPEN("schema", 3);
   proc_schema_plugins(ctx);
   proc_schema_types(ctx);
+  proc_schema_tokenizers(ctx);
   GRN_OUTPUT_MAP_CLOSE();
 
   return NULL;

  Modified: test/command/suite/schema/plugins.expected (+44 -0)
===================================================================
--- test/command/suite/schema/plugins.expected    2015-10-19 15:21:24 +0900 (51b5c48)
+++ test/command/suite/schema/plugins.expected    2015-10-19 15:22:17 +0900 (2c38c55)
@@ -99,6 +99,50 @@ schema
         "size": 8,
         "can_be_key_type": true
       }
+    ],
+    "tokenizers": [
+      {
+        "name": "TokenBigram"
+      },
+      {
+        "name": "TokenBigramIgnoreBlank"
+      },
+      {
+        "name": "TokenBigramIgnoreBlankSplitSymbol"
+      },
+      {
+        "name": "TokenBigramIgnoreBlankSplitSymbolAlpha"
+      },
+      {
+        "name": "TokenBigramIgnoreBlankSplitSymbolAlphaDigit"
+      },
+      {
+        "name": "TokenBigramSplitSymbol"
+      },
+      {
+        "name": "TokenBigramSplitSymbolAlpha"
+      },
+      {
+        "name": "TokenBigramSplitSymbolAlphaDigit"
+      },
+      {
+        "name": "TokenDelimit"
+      },
+      {
+        "name": "TokenDelimitNull"
+      },
+      {
+        "name": "TokenMecab"
+      },
+      {
+        "name": "TokenRegexp"
+      },
+      {
+        "name": "TokenTrigram"
+      },
+      {
+        "name": "TokenUnigram"
+      }
     ]
   }
 ]
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index