X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;ds=sidebyside;f=index%2Fzebraapi.c;h=ff4902f4cceb38410cb86c90e6a0a0af63b9c585;hb=1369748dd7899789c97d94801048bf942e0cc6e6;hp=7c914b48991cb577780e201cbc29a7a62d7f36ca;hpb=e0eb94804d9403aee827c71dfcef5b504881edc9;p=idzebra-moved-to-github.git diff --git a/index/zebraapi.c b/index/zebraapi.c index 7c914b4..ff4902f 100644 --- a/index/zebraapi.c +++ b/index/zebraapi.c @@ -1,4 +1,4 @@ -/* $Id: zebraapi.c,v 1.212 2006-04-05 02:10:20 adam Exp $ +/* $Id: zebraapi.c,v 1.218 2006-05-18 12:03:05 adam Exp $ Copyright (C) 1995-2005 Index Data ApS @@ -36,6 +36,7 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include #include "index.h" +#include "rank.h" #include "orddict.h" #include #include @@ -245,6 +246,14 @@ ZebraService zebra_start_res (const char *configName, Res def_res, Res over_res) zh->path_root = res_get (zh->global_res, "root"); zh->nmem = nmem_create(); zh->record_classes = recTypeClass_create (zh->global_res, zh->nmem); + + if (1) + { + const char *module_path = res_get(res, "modulePath"); + if (module_path) + recTypeClass_load_modules(&zh->record_classes, zh->nmem, + module_path); + } return zh; } return 0; @@ -359,12 +368,7 @@ struct zebra_register *zebra_register_open(ZebraService zs, const char *name, reg->keys = zebra_rec_keys_open(); -#if NATTR reg->sortKeys = zebra_rec_keys_open(); -#else - reg->sortKeys.buf = 0; - reg->sortKeys.buf_max = 0; -#endif reg->records = 0; reg->dict = 0; @@ -377,8 +381,10 @@ struct zebra_register *zebra_register_open(ZebraService zs, const char *name, reg->key_file_no = 0; reg->ptr_i = 0; + /* installing rank classes */ zebraRankInstall (reg, rank_1_class); zebraRankInstall (reg, rank_zv_class); + zebraRankInstall (reg, rank_similarity_class); zebraRankInstall (reg, rank_static_class); recordCompression = res_get_def (res, "recordCompression", "none"); @@ -540,11 +546,7 @@ static void zebra_register_close(ZebraService zs, struct zebra_register *reg) data1_destroy (reg->dh); zebra_rec_keys_close(reg->keys); -#if NATTR zebra_rec_keys_close(reg->sortKeys); -#else - xfree(reg->sortKeys.buf); -#endif xfree(reg->key_buf); xfree(reg->name); @@ -1984,7 +1986,12 @@ static ZEBRA_RES zebra_commit_ex(ZebraHandle zh, int clean_only) zebra_lock_r (zh->lock_shadow); bfs = bfs_create (res_get (zh->res, "register"), zh->path_reg); - + if (!bfs) + { + zebra_unlock(zh->lock_shadow); + zebra_unlock(zh->lock_normal); + return ZEBRA_FAIL; + } zebra_get_state (zh, &val, &seqno); if (rval && *rval) @@ -2297,9 +2304,10 @@ ZEBRA_RES zebra_delete_record (ZebraHandle zh, ZEBRA_CHECK_HANDLE(zh); - assert(sysno); assert(buf); - yaz_log(log_level, "zebra_delete_record sysno=" ZINT_FORMAT, *sysno); + yaz_log(log_level, "zebra_delete_record"); + if (sysno) + yaz_log(log_level, " sysno=" ZINT_FORMAT, *sysno); if (buf_size < 1) buf_size = strlen(buf); @@ -2456,3 +2464,11 @@ void zebra_lock_prefix (Res res, char *path) strcat (path, "/"); } +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +