X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fzebraapi.c;h=35d02d808e1d8cc5c1d4d50227b204e44e0b4b50;hb=cc74bd253ed898cd5b94826912cbc1ca1c940387;hp=3296732cd723caa5653c2cb19c838a3940b3afc2;hpb=ac300df2169e3dcbdf9ab726349925cc3a122028;p=idzebra-moved-to-github.git diff --git a/index/zebraapi.c b/index/zebraapi.c index 3296732..35d02d8 100644 --- a/index/zebraapi.c +++ b/index/zebraapi.c @@ -1,4 +1,4 @@ -/* $Id: zebraapi.c,v 1.206 2006-03-26 14:17:01 adam Exp $ +/* $Id: zebraapi.c,v 1.209 2006-03-31 08:51:26 adam Exp $ Copyright (C) 1995-2005 Index Data ApS @@ -297,7 +297,7 @@ struct zebra_register *zebra_register_open(ZebraService zs, const char *name, yaz_log (YLOG_DEBUG, "zebra_register_open rw=%d useshadow=%d p=%p n=%s rp=%s", rw, useshadow, reg, name, reg_path ? reg_path : "(none)"); - reg->dh = data1_createx (DATA1_FLAG_XML); + reg->dh = data1_create(); if (!reg->dh) { xfree(reg->name); @@ -332,7 +332,9 @@ struct zebra_register *zebra_register_open(ZebraService zs, const char *name, data1_set_tabroot (reg->dh, reg_path); reg->recTypes = recTypes_init (zs->record_classes, reg->dh); - if ((reg->zebra_maps = zebra_maps_open (res, reg_path)) == 0) + reg->zebra_maps = + zebra_maps_open(res, reg_path, profilePath); + if (!reg->zebra_maps) { recTypes_destroy(reg->recTypes); bfs_destroy(reg->bfs); @@ -341,7 +343,6 @@ struct zebra_register *zebra_register_open(ZebraService zs, const char *name, xfree(reg); return 0; } - reg->rank_classes = NULL; reg->key_buf = 0; @@ -376,6 +377,16 @@ struct zebra_register *zebra_register_open(ZebraService zs, const char *name, if (!strcmp (recordCompression, "bzip2")) record_compression = REC_COMPRESS_BZIP2; + if (1) + { + const char *index_fname = res_get_def(res, "index", "default.idx"); + if (index_fname && *index_fname) + { + if (zebra_maps_read_file(reg->zebra_maps, index_fname) != ZEBRA_OK) + ret = ZEBRA_FAIL; + } + } + if (!(reg->records = rec_open (reg->bfs, rw, record_compression))) { yaz_log (YLOG_WARN, "rec_open failed"); @@ -448,7 +459,7 @@ struct zebra_register *zebra_register_open(ZebraService zs, const char *name, ret = ZEBRA_FAIL; } } - if (reg->records) + if (ret == ZEBRA_OK) { reg->zei = zebraExplain_open(reg->records, reg->dh, res, rw, reg,