-/* $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
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);
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);
xfree(reg);
return 0;
}
-
reg->rank_classes = NULL;
reg->key_buf = 0;
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");
ret = ZEBRA_FAIL;
}
}
- if (reg->records)
+ if (ret == ZEBRA_OK)
{
reg->zei = zebraExplain_open(reg->records, reg->dh,
res, rw, reg,