X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fzebraapi.c;h=9a88ead6c545ac9c5f4c2f5c89ce95fb8c688370;hb=3168ab325caf86d3bac38c33f7d3b701d1110539;hp=7c914b48991cb577780e201cbc29a7a62d7f36ca;hpb=e0eb94804d9403aee827c71dfcef5b504881edc9;p=idzebra-moved-to-github.git diff --git a/index/zebraapi.c b/index/zebraapi.c index 7c914b4..9a88ead 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.216 2006-05-05 07:34:25 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; @@ -377,8 +386,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"); @@ -1984,7 +1995,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 +2313,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);