Add grn_db_fin_mecab_tokenizer to finalyze mecab tokenizer
This commit is contained in:
parent
069200267d
commit
6e6a4227c0
3
storage/mroonga/vendor/groonga/lib/db.c
vendored
3
storage/mroonga/vendor/groonga/lib/db.c
vendored
@ -445,6 +445,9 @@ grn_db_close(grn_ctx *ctx, grn_obj *db)
|
||||
|
||||
ctx_used_db = ctx->impl && ctx->impl->db == db;
|
||||
if (ctx_used_db) {
|
||||
#ifdef GRN_WITH_MECAB
|
||||
grn_db_fin_mecab_tokenizer(ctx);
|
||||
#endif
|
||||
grn_ctx_loader_clear(ctx);
|
||||
if (ctx->impl->parser) {
|
||||
grn_expr_parser_close(ctx);
|
||||
|
30
storage/mroonga/vendor/groonga/lib/tokenizers.c
vendored
30
storage/mroonga/vendor/groonga/lib/tokenizers.c
vendored
@ -797,6 +797,36 @@ grn_db_init_mecab_tokenizer(grn_ctx *ctx)
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
grn_db_fin_mecab_tokenizer(grn_ctx *ctx)
|
||||
{
|
||||
switch (GRN_CTX_GET_ENCODING(ctx)) {
|
||||
case GRN_ENC_EUC_JP :
|
||||
case GRN_ENC_UTF8 :
|
||||
case GRN_ENC_SJIS :
|
||||
#if defined(GRN_EMBEDDED) && defined(GRN_WITH_MECAB)
|
||||
{
|
||||
GRN_PLUGIN_DECLARE_FUNCTIONS(tokenizers_mecab);
|
||||
GRN_PLUGIN_IMPL_NAME_TAGGED(fin, tokenizers_mecab)(ctx);
|
||||
}
|
||||
#else /* defined(GRN_EMBEDDED) && defined(GRN_WITH_MECAB) */
|
||||
{
|
||||
const char *mecab_plugin_name = "tokenizers/mecab";
|
||||
char *path;
|
||||
path = grn_plugin_find_path(ctx, mecab_plugin_name);
|
||||
if (path) {
|
||||
GRN_FREE(path);
|
||||
grn_plugin_unregister(ctx, mecab_plugin_name);
|
||||
}
|
||||
}
|
||||
#endif /* defined(GRN_EMBEDDED) && defined(GRN_WITH_MECAB) */
|
||||
break;
|
||||
default :
|
||||
break;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
#define DEF_TOKENIZER(name, init, next, fin, vars)\
|
||||
(grn_proc_create(ctx, (name), (sizeof(name) - 1),\
|
||||
GRN_PROC_TOKENIZER, (init), (next), (fin), 3, (vars)))
|
||||
|
Loading…
x
Reference in New Issue
Block a user